VB.NET質問スレ (Part ..
[2ch|▼Menu]
208:149
06/08/26 13:06:25
>>207
すいません、そうでした。現在のソースはこのような感じです。仮想モードは使っていません。

  Dim ds as Dataset
  Dim dt as Datatable
  Dim bind1 As BindingSource
  Friend WithEvents Bg_main As System.ComponentModel.BackgroundWorker

Sub form1_load() Handles MyBase.Load
  ds.Tables.Add(dt)
  dt.Columns.Add("column1", GetType(String))
(以下略)
  bind1.DataSource = dt
  Datagridview1.DataSource = bind1
  Bg_main.RunWorkerAsync() '別スレッドへ
End Sub

Sub Bg_main_DoWork() Handles Bg_main.DoWork
  Row = dt.NewRow
  Row(0) = "a"
  Row(1) = "b"
  dt.Rows.Add(Row)
End Sub

Bg_main.RunWorkerCompleted で追加を検出してMe.Refreshでも固まってしまいます。DataGridViewで何かイベントがいるのかな。

209:デフォルトの名無しさん
06/08/26 13:13:30
>>208
順序がおかしいな。
別スレッドで DataSet/DataTable にデータを突っ込む>元スレッドで DataSource に設定
だ。

> DoWork イベント ハンドラでユーザー インターフェイス オブジェクトを操作しないように注意する必要があります
と MSDN にあるが、 DataSource に設定済みの DataSet/DataTable への操作も UI の操作に当たる。

210:149
06/08/26 13:35:50
>>209
レスありがとうございます。
頻繁に書き換えがあるので、左記にDataSourceを割り当てているのです。
実際には、スレッドは沢山あって、それぞれにDataDableを更新しています。

その更新結果を、DataGridViewにリアルタイムで表示しているのですが、スクロールバーが出ると固まってしまいます。
MSDNにはUIを操作するなと書いてあるのは知ってますが、リアルタイムでデータが流れてくるので、別スレッドに流し込まない
と処理が間に合わないのが現状でして。

表示自体は、RunWorkerCompletedにMe.Refresh()を入れれば改善はされるのですが、やはり触ると固まってしまいます。
そこで、色々調べたら>>205の症状と似ていたので。

205のソースは、いろいろと変更して入れて見る努力はしたのですが、そもそも知識不足で理解できませんでした。

211:デフォルトの名無しさん
06/08/26 13:50:50
だったらこんなところに質問している間に理解しようとすればいいのに。
この人に限らないけど、ダメな奴っていうのは基本的に努力の方向が間違ってるよ。

212:149
06/08/26 13:55:24
>>211
C#のヘルプとか見ながら色々と試行錯誤しているんですけど、なかなか上手くいかなくて。。。。

213:デフォルトの名無しさん
06/08/26 14:06:52
いや、だからたぶんデリゲートとかスレッドがよく分からんのでしょ?
だったらまずそれを理解しろよ。でなきゃ埒があかん。小学生でもわかる理屈。
@ITとかCodeZineに解説あるし、別にたいして難しいもんじゃない。

214:デフォルトの名無しさん
06/08/26 14:15:37
> スレッドは沢山あって、それぞれにDataDableを更新しています。
ってアンタ……


なんか色々絶望的だな

215:149
06/08/26 16:32:56
Invokeを使ってもやっぱりかたまる。DataGridViewのイベント関係なのかも。


Delegate Sub DataTableAddRowCallback(ByVal dt As DataTable, ByVal dt_row As DataRow)

Public Class Form1

>>208と一緒

  Public Sub DataTableAddRow(ByVal dt As DataTable, ByVal dt_row As DataRow)
   If DataGridView1.InvokeRequired Then
     Dim d As DataTableAddRowCallback
     d = New DataTableAddRowCallback(AddressOf DataTableAddRow)
     Me.Invoke(d, New Object() {dt, dt_row})
   Else
     dt.Rows.Add(dt_row)
   End If
  End Sub

Sub Bg_main_DoWork() Handles Bg_main.DoWork
  Row = dt_temp.NewRow
  Row(0) = "a"
  Row(1) = "b"
  DataTableAddRow(dt, Row)
End Sub

End Class


216:デフォルトの名無しさん
06/08/26 19:00:19
ダメグラマが「固まる」って言葉が好きなのは法則か何かかねw

ダメグラマはなんでダメなくせになんでいきなり全部を完成させようとするんだろう。
そのくせ問題が起こると、「問題の切り分け」すらしようともせず、
全然見当違いのことを問題の原因だと思い込む。

もちろん彼はシンプルなコードを書いて、本当に彼が思っていることが
問題の原因なのか、確認しようともしない。

217:デフォルトの名無しさん
06/08/27 00:42:02
510 :ワールド名無しサテライト:2006/08/26(土) 09:43:50.46 ID:8fm3vXed
「やっぱりVBが悪いんじゃないか。VBなんて」
「いいえ。全ては使い方しだい。私たちがVBの本当の使い方を見せてあげますわ。」

218:デフォルトの名無しさん
06/08/27 13:02:03
スマートクライアント(リッチクライアント)についてサンプルが載ってる
本でいいのって無いですかね?

219:デフォルトの名無しさん
06/08/27 15:42:58
ネットで見つからなければ本も期待できないと思ったほうがいい

220:デフォルトの名無しさん
06/08/27 18:49:09
そっか、したら、もう少しネット浮浪者でがんばってみる。

221:デフォルトの名無しさん
06/08/28 01:05:59
>>215
同じインスタンスなら、Invokeなんてまったく意味ない。

単にロジックがおかしいんだと思うけど、
ソースコピって一からデバッグしてくれる親切な人なんていないんだからさ、
もうちょっと、的を絞って質問できないか?

あとデータ量が多いならMSDN読んで作り直したほうがいいかもしれない。


222:デフォルトの名無しさん
06/08/28 02:02:42
>同じインスタンスなら、Invokeなんてまったく意味ない。

( ゚д゚)



( ゚д゚ )

223:デフォルトの名無しさん
06/08/28 02:15:54
こっちみんな

224:デフォルトの名無しさん
06/08/28 05:08:38
みんな〜こっちこっち〜

225:デフォルトの名無しさん
06/08/28 16:07:38
VB.NET2003でTabControlついてですが
デフォルトでは標準コントロールらしく味がありません。
これはデザインを変更することは可能ですか?

226:デフォルトの名無しさん
06/08/28 16:47:53
継承して頑張ってみれば?


227:デフォルトの名無しさん
06/08/28 19:18:30
>>225

つ VB2005
話はそれからだ。



228:デフォルトの名無しさん
06/08/28 20:39:13
>>227
2005のはどんな感じですか?

229:デフォルトの名無しさん
06/08/28 22:24:41
私VB.NETの初心者です。
CopyMemory
の使い方が分からなくて、たまたま見つけた
URLリンク(www.winapi-database.com)
の例

Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
(Destination As Integer, Source As Integer, ByVal Length As Integer)

を試したらエラーしたので、二行目を適当に変更して

(ByVal Destination As IntPtr, ByVal Source As String, ByVal Length As Integer)

としたら無事動きました。
動いたのはいいのですが、これでいいのかどうかよく分かりません。
適当に勘で置き換えただけです。
それで質問なのですが、私が行った操作は、VBでは何という分野ですか?
こういうことに関してより詳しくなるためには、私は何を勉強すればいいでしょうか?
よろしく。


230:デフォルトの名無しさん
06/08/28 23:00:01
>>229
自学して理解できない人が触ったらだめだよ。そういうAPIは。
つりじゃなくまじめに。
子供には早いって奴。

231:デフォルトの名無しさん
06/08/28 23:34:36
>>229
P/Invokeだけど、
本当にCopyMemoryする必要があるの?
ライブラリ内で完結できるなら初学の頃はフレームワークの外にでるべきじゃない

232:132:乱数君
06/08/28 23:57:56
やっと時間を持てるようになり、皆さんのご意見を参考にさせていただいて、まずは、タイマーを外しまして(出来れば、タイマーを使ってスロットのようにしたかったのですが、背に腹は代えられません)、思うような成果が得られました。
ただ、以下のコードをButton1_Clickに記入しているにもかかわらず、

Do
Label3.Text = Int((52 * Rnd()) + 1)
h = Val(Label2.Text)
i = Val(Label3.Text)
Loop Until h <> i

何のコードも記入していないはずのButton2をクリックした時に、上記のイベントが起きます。(Button1をクリックした時には何も起きません。)
これは何故なのでしょうか…?

233:デフォルトの名無しさん
06/08/29 00:14:13
それは霊のしわざです

234:デフォルトの名無しさん
06/08/29 00:30:26
>>232
半年くらいコーディングやめてバカンスにでも行ってきたら?
つーか何で>>141とかでダメなのかと。

235:デフォルトの名無しさん
06/08/29 11:08:42
夏休みの宿題なんじゃねーの?

236:232
06/08/29 12:02:00
>234
Private Sub 『hoge』
というツール?がよくわからなかったので、参照が出来ませんでした…
>235
リミットはありませんが、何とか時間のある夏のうちに完成させておきたいんです。

237:デフォルトの名無しさん
06/08/29 12:15:31
>>236
> Private Sub 『hoge』
> というツール?がよくわからなかったので、参照が出来ませんでした…
これが仮に「釣り」ではなく真面目な回答なら、煽りでも何でもなく真面目な助言なんだが、
初心者向けの書籍を最低一冊は自分で購入して学習ないといけない。

238:デフォルトの名無しさん
06/08/29 12:17:45
>>236
どうやら Handles の意味も調べなおしといたほうがよさそうだな・・・

239:デフォルトの名無しさん
06/08/29 12:21:26
> Private Sub 『hoge』
> というツール?がよくわからなかったので、参照が出来ませんでした…

この時点でスルー決定でおk?

240:デフォルトの名無しさん
06/08/29 13:09:49
ワロタ


241:236
06/08/29 13:57:31
私は.NETしか使用した事がありませんから、>141に使われている言語全体が、私が使用しているものと違い、何の本を参考にしていいのかもわかりません。
少なくとも、『学生のためのVisual Basic .NET』(東京電機大学出版局)には、件のワードは載っていないと思われます。
どうかお知恵をお貸し下さい…

242:デフォルトの名無しさん
06/08/29 13:58:36
これは・・・

243:デフォルトの名無しさん
06/08/29 14:08:28
クマー

244:デフォルトの名無しさん
06/08/29 14:09:25
>>241
URLリンク(bookweb.kinokuniya.co.jp)
これか?
第6章に書いてないか?
"hoge"は命名の例え。"baka"でも何でも自分で付けるもの。
(各自コーディング規約に則っての修飾等は置いておいて)
普通はその自分で作った関数の機能がわかるように命名する。
関数に名前を付け、中身も(この例だとRnd()のある2行)記述し、使いたい各所でその名前にて呼び出す。
Private, PublicやSub, Functionについても第6章に書いてあると思われ。

君はその本を読んだのかもしれないが、理解も習得もしていないし断片を記憶に留めることもしていない。

245:デフォルトの名無しさん
06/08/29 14:11:56
>>241
目次で見る分には十分そうな気もするんだが。
URLリンク(www.tdupress.jp)

このあたりからやってみたらどうだろう?
URLリンク(www.seshop.com)

あと、>>141のコードを丸ごと動かしてみてトレースしてみたら?

246:デフォルトの名無しさん
06/08/29 14:16:56
> >141に使われている言語全体が、私が使用しているものと違い

この時点でスルー決定でおk?

247:デフォルトの名無しさん
06/08/29 14:20:43
foo() や bar() 関数(api?)をよく見るのですが、
どのリファレンスにも載っていません。
どうもいろいろな言語に共通しているようですが、
いったいどういう動作をするのでしょうか。教えてください。

248:デフォルトの名無しさん
06/08/29 18:42:43
また人に教えを垂れたい「答えたがりクン」と、友達がいないからこんなところでも
馴れ合いたい「馴れ合いクン」が湧いてくるんだろw

馬鹿なことだよな。
こういう奴らはどっちかというと本来質問する側にまわるヘッポコ野郎のくせに、
自分で自分の利用可能なリソースを破壊してることにも気づかないんだから。

こんな下らん馴れ合いが続けば、ある程度スキルがあるまともな奴から去っていくだろ。

249:デフォルトの名無しさん
06/08/29 19:17:46
本人乙

250:241
06/08/29 20:07:47
>244>245
>141のコードを記述してみると、確かに、うまく動作していました。プロシージャの項目と言わず、もっと精進していくつもりです。大変にお騒がせしました。ありがとうございます。

>248
きっと、ある程度スキルがある人の事は、ある程度スキルがある人にしかわかりません。揣摩臆測でしょう。

251:デフォルトの名無しさん
06/08/29 20:51:28
>>232

貴方のいうButton1_Click は、別にどんな名前でもいい。これは解るかな?
そして、好きなイベントをHandleできるということも解るかな?

コレが解ればなぜButton2をクリックしてButton1_Click が動くのかは理解できるだろう。



252:232
06/08/29 21:05:36
>251
ありがとうございます。今はわかりませんが、精進してわかり得るように努めます。

253:デフォルトの名無しさん
06/08/29 21:14:10
精進する気がある奴ならそんな程度の質問などしないはずだがね。
まあ人事だからどうでもいいけど。
ただ鬱陶しいから二度と来ないでは欲しい。

254:デフォルトの名無しさん
06/08/29 21:18:23
多重起動時のウィンドウ制御について教えてください。

アプリを多重起動させようとしたときに、
既に同じアプリが動いてれば、何もさせずに、
起動済みのインスタンスをアクティブにして、
2つ目に起動したインスタンスは何もせずに終了させるという
ロジックを組もうとしています。

インスタンスが起動済みかどうかは Process.GetProcessesByName
などを使って判別することができ、
1つ目のインスタンスにPostMessageでWM_USERを送り、
自分自身でアクティブ化させるという方法をとったのですが、
問題なのは、このアプリが最小化されたときは、タスクバーから消して、
トレイに格納するようにしていることです。
タスクバーから、ウィンドウを消してしまうと、
たとえアプリが起動していても、2つ目のインスタンスから、
1つ目のインスタンスのMainWindowHandleを取得しようとしても
0しか返って来なくなるようで、PostMessageが使えない状態です。
2つ目のインスタンスに何かメッセージを送る方法はないでしょうか?


255:デフォルトの名無しさん
06/08/29 21:36:33
>>254
単一インスタンスのアプリケーションを作成 ではだめなん?
だめだよね…

256:デフォルトの名無しさん
06/08/29 21:49:12
>>254
>>196以降のレスは読んでる?
つーか同一人物か?

257:デフォルトの名無しさん
06/08/29 22:06:28
Do-Loopキモイ。

258:デフォルトの名無しさん
06/08/29 22:22:26
.NETのdatagridviewに、VB6のmsflexgridでいう
margeColやmargeRowみたいな機能はありますか?
探すのですが、みつからない…Orz

259:デフォルトの名無しさん
06/08/29 22:27:16
ない

260:デフォルトの名無しさん
06/08/29 22:43:15
>>259
お答え有り難う御座いました
無いのですか…orz
編集とか出来るようなので、ないような予感はしてましたが…
(つД`)あぁ

261:254
06/08/29 23:13:32
>>255
単一でもアクティブにならないとダメなんで・・・

>>256
すみません、見逃していました
IpcChannelってのが使えそうなのでとりあえず試してみます。

262:デフォルトの名無しさん
06/08/30 00:38:03
DataGridViewに50列1万件程度のレコードを仮想モードで表示させています。
この状態で、画面をスクロールさせたり、複数セルを選択するたびに、
かなり画面がちらついてしまいます。
この現象を回避する良い方法はないでしょうか?

263:デフォルトの名無しさん
06/08/30 00:49:36
>>262

50万セルは大杉
DataGridViewに限らずもうすこし現実的な仕様を考えたほうがいい

普通にそれだけあったら絞るか分割するだろう。
50列も一度に見渡すよりも必要な列だけ見れたほうが扱いやすい事もある。
行の場合も必要な範囲をさくさく見れるほうが便利な事もある。
少なくとも1万行全部を見渡す必要なんて無いと思うが・・・

生データをただ丸ごと全部並んでればいいってもんじゃないだろお。
どうすれば最も扱いやすくなるかを考えなさい。


264:デフォルトの名無しさん
06/08/31 10:59:36
UIの仕様に話が変わってるなw

265:デフォルトの名無しさん
06/08/31 11:04:53
OS:Windows2000
言語:VB.NET(2003)

現在、CSVファイルとPDFファイルをそれぞれ暗号化し
メールで送信後、送信先で復号化して保存する
アプリケーションを作成しています。
そこで、
URLリンク(dobon.net)
を元に、暗号化と復号化機能を作成しました。

CSVファイルの暗号化、復号化は問題なく出来たのですが
PDFファイルを同じように暗号化し、復号化すると
復号化した後のPDFファイルを開くと
「この文章を開くときエラーが発生しました。
ファイルが壊れています。修復できませんでした。」
とメッセージが表示されうまく復号化出来ませんでした。
私なりに調べてみたのですが、どう解決すればよいかわかりませんでした。
どなたか、実装例や参考アドレスなどでも結構などで教えていただけないでしょうか?


266:デフォルトの名無しさん
06/08/31 11:07:55
マルチ乙

267:デフォルトの名無しさん
06/08/31 11:09:32
よくわからんが、それ対象がテキスト以外でも大丈夫なんか?

268:デフォルトの名無しさん
06/08/31 11:45:26
DecryptFileを下のやつに置き換えてないとか

269:デフォルトの名無しさん
06/08/31 12:27:28
OS:WindowsXP
言語:VB.NET(2003)

外部端子からの映像入力をリアルタイムでフォーム上に表示することって出来ますか?
出来ればやり方教えてください。

270:デフォルトの名無しさん
06/08/31 12:29:00
外部端子てなによ。キャプチャカード?

271:デフォルトの名無しさん
06/08/31 18:36:57
開発言語:VB.NET(Windowsアプリケーション)
    :SPREAD Windows FORM Edition

現在 VB.NETでフォーム上にSPREADを配置した
アプリケーションを開発しています。
そのスプレッド上の特定のセルに
フォーカスが当たった時、喪失した時に、
IMEの「全角あ」「半角ア」の制御を行いたいのですが、
なかなか実現できずに困っています。
どなたか同様の案件を実現された方がいらっしゃれば、
教えていただけないでしょうか?
よろしくお願いします。

272:デフォルトの名無しさん
06/08/31 21:08:27
パブリックな標準モジュールとクラスの差異ってばなんですか?????


273:デフォルトの名無しさん
06/08/31 21:13:13
今からVBを始めようと思っている超初心者です。
今日、PC屋に行ってVisual Basicを買おうと思ってみていたら、
Win2000とXPに対応していないものしか売っていませんでした。
Meに入るVBはどこで入手したらいいのでしょうか・・・・・・

274:デフォルトの名無しさん
06/08/31 22:41:19
>>272
たくさんあって書き切れない

>>273
VS買う金があるならOS買ってVB Express Edition使っとけ
いやまじで。

275:273
06/09/01 00:26:27
>>274
回答サンクスです
マジですか。。。
確かにVBに限らずいろんなソフトがxp/2000専用になってますもんね・・・(VB体験版もMe入らないみたいだし・・)
ありがとうございます。
xp検討してみます。

276:デフォルトの名無しさん
06/09/01 20:27:13
項目内容が同じdatatable1とdatatable2の両方を
datatable3に入れたいのですが可能ですか?


277:デフォルトの名無しさん
06/09/01 20:34:24
追記
1列ずつnewとaddで追加する方法以外で
無理ですか…?

278:デフォルトの名無しさん
06/09/01 21:54:01
insert into datatable3 select * from datatable1
insert into datatable3 select * from datatable2

279:278
06/09/01 21:55:23
あ、RDBじゃないのか。すまん。

280:デフォルトの名無しさん
06/09/02 00:26:12
>>276
最初にDataTable1の複製を作って、そこにDataSet.Mergeメソッド
で2の内容をくっつけるのはどうだろう?

URLリンク(msdn2.microsoft.com)

281:ぼよん
06/09/02 02:58:31
アニーメーションGIFを出力する方法ってご存知ありませんか?
標準のライブラリでできるのでしょうか?

282:デフォルトの名無しさん
06/09/02 03:21:05
どこに出力すんだ

283:デフォルトの名無しさん
06/09/02 06:16:04
VB.NET 2005 で
マルチスレッドWindowsサービスの
プログラムを作成しようとしているのですが
手持ちの本がサービスとスレッド関係の情報が
少ししか載っておりません。

先輩方で良い本をご存知の片がいらっしゃいましたら
教えて頂けませんでしょうか?


284:276
06/09/02 12:25:57
>>278 280 有り難う御座いました
思った感じに出来ましたーー


285:デフォルトの名無しさん
06/09/02 12:33:37
つーかそれ、VB.NETじゃなくてSQLの質問…

286:デフォルトの名無しさん
06/09/02 13:00:22
いえいえ、たぶんVB.NETで間違いないです
変数名 AS datatable

の関連です

親FILEと子FILEがあり
datatableへそれぞれdatatable1とdatatable2に入れてまとめた後、
ビューでソートしたものをdatagridviewに渡すべきか
rowをaddでゴリゴリ追加すべきか、悩むところです
(´Д`)


287:デフォルトの名無しさん
06/09/02 13:17:56
アフォの子は退場

288:デフォルトの名無しさん
06/09/02 13:59:54
もすかすて、SQLになるんですか…
まだVB.NET2005を触り初めて数日で
正直よくわかってません…orz



289:デフォルトの名無しさん
06/09/02 14:03:14
Mergeでいいやん

290:デフォルトの名無しさん
06/09/03 13:23:31
すいません、質問なんですが。
デバッグモードでプログラムを実行中に無限ループに陥ってしまった場合、
現在どのステートメントを実行しているか知る方法ってありますか?
VBというよりデバッガの質問になってしまっていますが、もしよろしければ
教えていただけないでしょうか。

291:デフォルトの名無しさん
06/09/03 13:39:28
妖しそうなコードの手前にブレークポイント置いてステップ実行。

292:デフォルトの名無しさん
06/09/03 15:46:44
大文字小文字を区別しないIndexOfって無いんでしょうか・・・
調べ方が悪いのかなorz

293:デフォルトの名無しさん
06/09/03 16:26:55
.NET 2.0/VB2005 なら String.IndexOf にオーバーロードがあるが、
それ以前なら Regex.Match でも使ってれば。

294:デフォルトの名無しさん
06/09/03 17:44:35
>>292
string.IndexOf(String, StringComparison)
string.ToLower.IndexOf(string)
string.ToUpper.IndexOf(string)

295:デフォルトの名無しさん
06/09/03 17:47:41
下の2つ、
比較先もToLower()/ToUpper()しなきゃだめじゃね?



296:デフォルトの名無しさん
06/09/03 19:18:24
日曜プログラマなんだけどVB.NETはgoto文使えないの?
VBはお気楽に使えるのがいいのにな

297:デフォルトの名無しさん
06/09/03 20:31:05
なんでお気楽に書くためにgotoが要るのか分からない。
てか使えるだろ別に。


298:デフォルトの名無しさん
06/09/03 21:03:43
On Error Gotoの替わりはtry catchだよ。

299:デフォルトの名無しさん
06/09/03 21:05:29
そういや普通のgotoって残ってたっけ?

300:デフォルトの名無しさん
06/09/03 21:13:17
プロジェクトウインドウのツールボックスのように、画面の隅にひっこめたり
表示したりするコントロールはなんて名前ですか

301:デフォルトの名無しさん
06/09/03 21:52:42
>>299
残ってる。ループ構文のネストから脱出する場合のGO TOは禁じてではない。

302:デフォルトの名無しさん
06/09/03 21:59:01
>>301
まあそもそも深いところからの脱出が必要なネスト構造自体禁じたいもんではあるな

303:デフォルトの名無しさん
06/09/03 22:06:07
VBの場合whileの2階層離脱は出来たりする。
Do While ...
  While ...
    Exit Do
  End Wend
Loop

304:デフォルトの名無しさん
06/09/03 23:19:35
.NETでCABファイルを作成しWEBサーバに配置。
ASPを実行して、objectタグでクライアントにダウンロード
し実行しようとしています。
ここで、CABはダウンロードされ、DOWNLOADED PROGRAM FILESに
表示はされますが、状態が「不明」となり、レジストリ登録されず
、実行することができません。
.NETモジュールとASPに記述したクラスIDは同期がとれています。

VB6.0で作成したCABは問題なく使用できたのですが・・・
同様の経験のかたいらしたら、ご教授ください。



305:デフォルトの名無しさん
06/09/03 23:25:49
Do-Loopキモイ

306:デフォルトの名無しさん
06/09/04 09:18:53
>>302
お前さんは簡単なプログラムしか作ったことが無いのか?
多重ループ構造なんて良くあることだし、
途中で結果が出たら無駄にループせずに脱出したほうがいいに決まってる。

>>303
go to はともかく
Doイベントは、もはや使うべきではない。

>>304
同様の経験もなにも、意味不明。
まずは、どこに問題があるのかを自分で特定しなさい。
特定できたらそこに絞って質問してくれ。
答えようが無い。

307:デフォルトの名無しさん
06/09/04 09:34:40
問題も何も、普通1行目の前半の問題である可能性を一番に疑うし。

308:デフォルトの名無しさん
06/09/04 09:42:00
> Doイベント
ってw

309:デフォルトの名無しさん
06/09/04 09:45:34
> 途中で結果が出たら無駄にループせずに脱出したほうがいいに決まってる。

多重ループはよくあるが、gotoで脱出しなくても綺麗な流れで抜けられるようなロジックにするよな普通。

310:デフォルトの名無しさん
06/09/04 09:51:47
まぁ、何だ。>>306みたいな素人程、複雑怪奇なコードを書いて
「難しいプログラムだぜ」と自己満足に浸るもんだしな。

311:デフォルトの名無しさん
06/09/04 10:05:39
exit for とかで抜けれるならいいけど多重構造によってはgotoもありじゃね?C言語全盛期じゃあるまいし

「綺麗な流れ」とか、芸術性で物作ってるわけじゃないけどgoto使ったほうが綺麗になる場合もある。
何もかもgotoだと気持ち悪いけどね。


312:デフォルトの名無しさん
06/09/04 10:17:02
gotoで見通しが格段に良くなる場合だけだな。使うのは。

313:デフォルトの名無しさん
06/09/04 10:24:23
>>306
go to は良くて Do Loop が良くない理由を教えてください

314:デフォルトの名無しさん
06/09/04 10:50:49
お世話になります。

現在VS2003 .NET Framework1.1にて開発を行っています。
DataGridの行追加が許可されている状態で
一番下の行(全項目が空白の行)をctrl+cでコピーをしようとすると
IndexOutOfRangeExceptionが発生してしまいます。
これは、DataGridの一番下の行に値が入力されるまでは
関連付けられているDataTableに新規行が追加されていない為だと思うんですが、
どうしたらこのエラーを回避する事が出来るのでしょうか?

315:デフォルトの名無しさん
06/09/04 14:05:02
DataGridでデータ追加をするってこと自体がヤバいと思う。
単票フォームを別に作って、そこから一件づつ追加するような遷移に
すれば? 入力データのエラーチェックもその場で可能だし。

Gridは一覧表示とまとめて削除くらいに特化して、追加編集は別フォ
ームにて確認しながら行うのがいいかと。

316:デフォルトの名無しさん
06/09/04 19:22:51
>>307−310
ヴ ォ ケ

317:デフォルトの名無しさん
06/09/04 20:29:17
見事な敗北宣言だな 実に美しい

318:デフォルトの名無しさん
06/09/04 20:31:25
何か叫んで走って逃げてったな。>>316

319:デフォルトの名無しさん
06/09/05 02:30:21
ガキばっかりだな。
勝敗競うスレでもなければ、技術自慢するスレでもない。
おとなしくスルーしろよ。


320:デフォルトの名無しさん
06/09/05 06:42:31
モマエモナー

321:デフォルトの名無しさん
06/09/05 10:21:50
オマエモナー(=゚ω゚)つ)゚∀゚)グァ

322:デフォルトの名無しさん
06/09/05 14:20:56
HashtableのValueにデータ型(System.Int16やSystem.Object)を入れたいんだけど、入れる方法ってあります?

323:デフォルトの名無しさん
06/09/05 14:27:54
(゚д゚)ハァ?

324:322
06/09/05 15:34:11
判りにくかったようなので、再度書きます
Dim hash As Hashtable
hash.Add(1, System.Int64)
↑のような事をやりたいのですが、コンパイルエラーになります。
System.Int64を入れるやり方ってありますか?

325:デフォルトの名無しさん
06/09/05 15:55:57
GetType(System.Int64)

326:デフォルトの名無しさん
06/09/05 22:15:43
それが分からんやつにTypeを入れる方法を教えても
Typeの使い方が分からんから、どうにもならないよ。


327:178
06/09/06 08:25:15
Datasetで同じスキーマ情報のdatatableにデータをコピーする
場合ってどうするんですか?
dim A as dataset.mmtable
dim B as dataset.mmtable

Adapter.Fill(A)


B=A ←こんなことがしたい。


328:デフォルトの名無しさん
06/09/06 08:54:26
>>327
URLリンク(msdn2.microsoft.com)

329:322
06/09/06 09:21:47
>>325
出来ました、ありがとう御座います

330:デフォルトの名無しさん
06/09/06 09:38:03
VS2003 .NET Framework1.1で開発しています。

PictureBoxにTIFファイルを表示させるプログラムを開発しています。
TIFファイルには1つのファイルに複数の画像を格納できるので、
そのページ数と表示倍率、画像の回転率を指定し、画像を表示させています。
テストを行っている時に気づいたのですが、
2ページ目以降で倍率100%、回転率180度の時に
なぜか1ページ目の画像が表示されてしまいます。
表示倍率や回転率を変えると
ちゃんと指定したページの画像が表示されます。
これは一体なぜなのでしょうか?

331:322
06/09/06 09:53:00
Dim hash As new Hashtable
dim object1 as object
dim object2 as object
hash.Add(1, GetType( System.Int64 ) ' ←ここはこれで行けました。
object2 = CType( object1 , hash(1) ) ' ←ここがいけません。
object2 = CType( object1 , GetType( hash(1) ) ) ' ←これもだめです。

Ctypeの第2引数にHashtableに入っているTypeを入れたいのですが、どうすればいいですか?

332:330
06/09/06 10:05:40
以下がそのプログラムの抜粋です。
長いので分割します。

Private Sub pctPreview_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pctPreview.Paint
Dim g As Graphics
Dim img As Image
Dim fd As FrameDimension

Try

sngZoomNum = intZoomNum / 100 'ここで倍率指定

g = e.Graphics

g.InterpolationMode = _
System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic

img = Image.FromFile(strFilePath)

'FrameDimensionを取得
fd = New FrameDimension(img.FrameDimensionsList(0))

'フレームを選択
img.SelectActiveFrame(fd, intPageNum) 'ここでページ数指定

333:330
06/09/06 10:09:34
'画像を表示(回転率ごとに変更)
Select Case sngRotate
Case 0
sender.Size = New System.Drawing.Size(sngZoomNum * img.Width, sngZoomNum * img.Height)
Case 90
sender.Size = New System.Drawing.Size(sngZoomNum * img.Height, sngZoomNum * img.Width)
g.TranslateTransform(sngZoomNum * img.Height, 0)
Case 180
sender.Size = New System.Drawing.Size(sngZoomNum * img.Width, sngZoomNum * img.Height)
g.TranslateTransform(sngZoomNum * img.Width, sngZoomNum * img.Height)
Case 270
sender.Size = New System.Drawing.Size(sngZoomNum * img.Height, sngZoomNum * img.Width)
g.TranslateTransform(0, sngZoomNum * img.Width)
End Select

'画像の傾き指定
g.RotateTransform(sngRotate)
g.DrawImage(img, 0, 0, sngZoomNum * img.Width, sngZoomNum * img.Height)

img.Dispose()

Catch ex As Exception
throw ex
End Try
End Sub

以上です。
どうぞよろしくお願いします。

334:デフォルトの名無しさん
06/09/06 10:39:39
>>331
無理

335:デフォルトの名無しさん
06/09/06 12:09:24
>>330
VB2005だけどやってみたら確かにそうなった。
原因はわからない(GDI+のバグ?)けどDrawImageするときに

Dim img2 As Bitmap = New Bitmap(img)
g.DrawImage(img2, 0, 0, sngZoomNum * img.Width, sngZoomNum * img.Height)
img2.Dispose()

としたらちゃんと描画されたので試してみて。

336:330
06/09/06 13:13:41
>>335
どうもありがとうございます。

教えていただいたコードを実装してみたところ、
正常に動作する事を確認しました。
自分もGDI+のバグかと思ったんですが、
それらしい記述が見当たらずに困っていました。

本当にどうもありがとうございました。

337:デフォルトの名無しさん
06/09/06 13:19:09
ListViewでヘッダをクリックでソートする事は許可しつつ、ヘッダをドラッグでサイズ変更はされたくないのですが、
これって出来ますか?

338:デフォルトの名無しさん
06/09/06 14:15:32
>>337
C#だけどこんなのがある。VBでやりたければ翻訳して。
URLリンク(hongliang.seesaa.net)

339:337
06/09/06 16:30:56
>>338
ありがとう、出来ました^^

340:デフォルトの名無しさん
06/09/06 22:26:18
>>328
ご丁寧にありがとうございました。
助かりました。

341:デフォルトの名無しさん
06/09/07 11:57:28
リストボックスの垂直スクロールバーを非表示にして、
なおかつ矢印キーでのスクロールは可能な状態に
したいのですが、出来ますでしょうか?


342:デフォルトの名無しさん
06/09/07 20:59:06
singletonパターンを使用しているクラス(newがprivate)をxmlでデシリアライズすると、
publicなコンストラクタが無いからだめと怒られてしまいます。
SoapFormatterを使用すれば出来る事は知っているのですが、SoapFormatterで作ったファイルは見にくいので、
XmlSerializerでやりたいと思っています。
対応策やアドバイスお願いします。

343:342
06/09/07 21:26:02
↑は取り消します。すみません。
SoapFormatterで作ったファイルが汚いのはシリアライズ時のファイルモードがCreateで無かったからです、すみません。

344:デフォルトの名無しさん
06/09/08 00:11:48
変換ウィザードでVB.NET(2002)のプロジェクトを2005に変換したんですが
コードの表示やビルドは成功するのに、デザインで開けないフォームがあります。

「クラスが登録されていません」
場所 System.Windows.Forms ・・・

のような表示が出るのですが
System.Windows.Formsを参照させても解消しません。

ご存知の方がいらっしゃいましたらアドバイスをお願いいたします。

345:デフォルトの名無しさん
06/09/08 00:45:19
ググレよ池沼
URLリンク(www.google.com)

346:デフォルトの名無しさん
06/09/08 00:53:17
変換ウィザードはぜんぜん使い物にならないってこと。
フォームは新規作成、コードはコピペでちょっとずつ確認しながら
やったほうがいいよ。

347:デフォルトの名無しさん
06/09/08 17:22:55
環境はVisual Studio 2003、.Net FrameWork1.1です。

GetLogicalDrivesを使ってコンボボックスに
ドライブ名の一覧を表示させたいのですが、
試した限りではネットワークドライブに関しては
一度Windows上でそのドライブにアクセスしないと
ドライブ名が取得できないようなのです。
ネットワークドライブにアクセスしないで
ドライブ名の取得をする事は出来ないのでしょうか?

348:デフォルトの名無しさん
06/09/08 19:27:47
VB.Netをやってる 鬱だ 鬱だ 鬱だー

349:デフォルトの名無しさん
06/09/09 19:16:34
VB.NETについて質問があります。
VB.NET STANDARDをインストールしています。
必須コンポーネントインストールで
Visual Studio .NET Prerequisites ディスクを入れると
以下のようなメッセージが出てしまいます。

コマンドラインパラメータ:
/V パラメータを MsiExec.exe へ送る
/S 初期化ダイアログを非表示。サイレント モード用: /S /v/qn.
/P パスワード モード
/A 管理インストール
/J アドバタイズモード
/X アンインストール モード
/UA<InstMsiA.exe の URL>
/UW<InstMsiW.exe の URL>
/B キャッシュのローカル インストール

これから先へは進むことが出来ません。
どのようなことが考えられるでしょうか。

350:デフォルトの名無しさん
06/09/10 10:35:07
VB.NETは日曜プログラマーも多いが、それ以上に日曜なしプログラマーが多い。
おまいら見積もり尼杉。

351:デフォルトの名無しさん
06/09/10 10:42:39
VB.NET2003からHTTPでレガシーASPのサイトにファイルを
アップロードしたいのですが、HTMLで以下のような形で
ファイルを送信するのと同じ処理をVB.NETのWindowsアプリから
やりたいのですが、よいサンプルが見つからず悩んでおります。
どなたかご存知の方がおられましたら教えてください。
よろしくお願いします。

<form action="hoge.asp" enctype="multipart/form-data">
<input name="File" type="file">
</form>


352:351
06/09/10 13:03:11
すみません。事故解決しました。

353:デフォルトの名無しさん
06/09/10 14:01:33
「'''」と入力してエンター押すと、勝手にメソッドのコメントの枠組みを
作ってくれるソフトの名前を知ってる方いらっしゃいませんか?

354:デフォルトの名無しさん
06/09/10 14:04:39
VB2005

355:デフォルトの名無しさん
06/09/10 15:36:37
>>354
2005では標準で付いてたんですね・・・すみません。ありがとうございました。

356:デフォルトの名無しさん
06/09/11 06:57:59
>>353
VBCommenter

357:347
06/09/11 09:45:36
どなたかわかりませんでしょうか?

358:デフォルトの名無しさん
06/09/11 10:11:18
>>357
A:\からZ:\までDirectory.Existで存在確かめたらいいんじゃね?

359:デフォルトの名無しさん
06/09/11 11:11:33
.NETの2003 WEBアプリケーションにおいて
「テキストボックスがフォーカス状態になったらリストボックスの可視をTrueにする」

といったような内容のIF文を記述したいのですが
どういった記述になるのでしょうか?
どなたかご教授ください、お願いいたします。

360:デフォルトの名無しさん
06/09/11 11:16:33
>>359
visble = falseじゃフォーカス取れなくね?

361:デフォルトの名無しさん
06/09/11 11:19:41
>>360
そうなんですよ・・・
一体どうすればいいのやら・・・何かよい方法ご存じないですか?



362:デフォルトの名無しさん
06/09/11 11:26:08
>>361
textBoxの上にパネルでも乗っけて隠して、
textBox.Enterでパネル.visible = false
textBox.Leaveでパネル.visible = true

みたいな感じでどうか

363:デフォルトの名無しさん
06/09/11 11:34:22
>>362
その「.enter」についてですが普通に記述するだけではなく
何か定義(準備?)のようなものが必要なのでしょうか?
以前 別のサイトで似たような記述を発見したので試したのですが
その部分がうまくいかなかったものでして・・・

364:デフォルトの名無しさん
06/09/11 11:55:58
イベントを学べ

365:デフォルトの名無しさん
06/09/11 13:33:35
すいません質問です。
文字列のソート・・例えば「あえいうお」を「あいうえお」
にする簡単な方法ありますでしょうか?
よろしくお願いします。

366:デフォルトの名無しさん
06/09/11 13:35:49
>>365
ORDER BY

367:デフォルトの名無しさん
06/09/11 13:51:48
>>365
Dim s As String = "あえいうお"
Dim c() As Char = s.ToCharArray()
Array.Sort(c)
s = New String(c)

368:365
06/09/11 14:03:08
!!
ありごとうございました!!


369:デフォルトの名無しさん
06/09/11 14:21:46
そのお礼が366宛てだったら笑えるなw

370:デフォルトの名無しさん
06/09/11 14:28:15
>>369
すまん今日一番ワロタ

371:365
06/09/11 15:33:13
何度もすいません。
例えば「abcABC」を「ABCabc」ではなく「aAbBcC」と並び替えるには、
どうすればいいでしょうか?
宜しくおねがいします。

372:デフォルトの名無しさん
06/09/11 15:35:58
>>371
ORDER BY

373:デフォルトの名無しさん
06/09/11 18:43:03
>>371
Public Class MyCompare : Implements IComparer(Of Char)
  Public Function Compare(ByVal x As Char, ByVal y As Char) As Integer Implements IComparer(Of Char).Compare
    Dim xLow As Char = Char.ToLower(x)
    Dim yLow As Char = Char.ToLower(y)
    If xLow = yLow Then
      Return -x.CompareTo(y)
    End If
    Return xLow.CompareTo(yLow)
  End Function
End Class

Array.Sort(c) の代わりに Array.Sort(c, New MyCompare())

374:デフォルトの名無しさん
06/09/12 00:08:39
なんでそんな面倒なことしてんだ?

375:デフォルトの名無しさん
06/09/12 00:18:57
簡単にやる方法をよろしく

376:デフォルトの名無しさん
06/09/12 00:36:43
どぼんとかのサンプルのクラスをコピペして"Windows フォーム デザイナで生成されたコード"を
直接直した(例えばnew DataGridをnew DataGridExにするとかした)時に、そのままデザインビューが
表示出来る場合もあれば、タスクにエラーが山程出てデザインビューでDataGrigが全く表示されず
コードがボコボコ消えて当然デバッグしてもマトモに動かない場合がありますが、やはり直接修正は
しちゃいかんのでしょうか?
(フォームのLoadに書けばいいのかな)

377:デフォルトの名無しさん
06/09/12 01:05:55
DataGridExとやらのクラスがきちんと定義されてれば可。
存在しないクラス名にしたらエラーが出るのは当たり前

ようするに分かってないうちはデザイン部は触るなってこった。
まあ触って学ぶってのもありだけど。

378:デフォルトの名無しさん
06/09/12 02:06:44
StringComparer.CurrentCultureIgnoreCase とか、元から使えるやつあるやん。


379:デフォルトの名無しさん
06/09/12 02:09:23
おっと、もし2.0じゃないならCaseInsensitiveComparer.Defaultとか。


380:デフォルトの名無しさん
06/09/12 02:17:32
>>379
それで書いてみろよ

381:デフォルトの名無しさん
06/09/12 02:23:16
??
Array.Sort(c, New MyCompare())

Array.Sort(c, CaseInsensitiveComparer.Default)
ってことじゃなくて??
なんか勘違いしとる俺?


382:デフォルトの名無しさん
06/09/12 02:52:02
おおっ勘違いしとったわwwすまんすまん。


383:デフォルトの名無しさん
06/09/12 13:01:37
>>377
いやもちろんクラスはあるんだわ
でないと絶対動かんし
要はただ起動しただけで動いたり動かなかったりするのは何でなんだろ?と
(動かない時ってのはコードがごっそり無くなって結果まともに動作しなくなる)


もう一つ、DataGridなんだけど、行ヘッダクリックすれば複数行選択出来るけど、
セルからme.select(row)みたいにすると、CtrlやShift押しててもその都度選択が解除されて
新規選択になっちゃいますよね
あれを回避する方法は無いでしょか?
(要はアクセスのリストボックスの複数選択モードみたいにしたいんです)

384:383
06/09/12 15:26:23
自己解決
カレントセルの列を-1にしてselectすれば出来た
shiftの時は前回の選択行からfor-nextで回してやればOK

385:デフォルトの名無しさん
06/09/12 20:49:08
VB2003にて質問です。
現在MDIアプリを作成中なのですが
子Formを2つ作成しActiveな子Formを切り替えた際に
切り替えたFormのActiveControlのValidatingが起きなくなりました。

子Form内の別のControlにFocusを移すと動作はもとに戻るのですが
なぜこのような動作するかが不明です。

どなたか教えていただけないでしょか?
またFocusを移動させる事なくValidatingをハンドルできるようにする方法も合わせてよろしく
お願いします。




386:デフォルトの名無しさん
06/09/12 22:00:47
不明も糞もそれがWindowsのGUIの仕様というかお作法でしょう。

387:デフォルトの名無しさん
06/09/12 22:50:48
イベントでやらずに、自分で任意のタイミングでやればいいじゃん。
イベントの発生タイミングは>>386のとおりなんだから。

388:デフォルトの名無しさん
06/09/13 11:43:45
VB.NET2005の正規表現について質問です。
時間に対して正当性のチェックをしたいと思っています。
許す文字列の例
0:00 0:0 12:00 12:59 23:0 23:59
許さない文字列の例
0:000 12:61 122:00 24:00

これをやろうと思い以下のようにやりましたが、だめでした。
dim pt as string = "([0-1]{,1}[0-9]|2[0-4]):([0-5][0-9]|[0-9])$"
dim time as string = ""'これはいろいろな時間の文字列
If Not Regex.IsMatch(value, pField.mPatternString) Then
   Throw New Exception("パターンに一致しません。")
End If

正規表現に問題が有るようなので、ご指導お願いします。

389:388
06/09/13 11:56:03
自己解決
^([0-1]?[0-9]|[2][0-3]):[0-5]?[0-9]$
ハットを入れないとだめでした

390:デフォルトの名無しさん
06/09/13 14:06:27
VB.net2003で質問です。
フォームのActiveControlプロパティが変更された時に起きるイベントは無いでしょうか?
フォーカスが移る度に起きるイベントをフォーム側に組み込もうと考えています。

391:デフォルトの名無しさん
06/09/13 18:29:10
VB.NET2003です。

最大化されたForm1からForm2を下記のようにダイアログとして
呼び出しました。

Dim DialogForm As New Form2
DialogForm.ShowDialog()

この時、Form2は最小化できてもForm1が最小化できない状態に
なるのですが、最小化できるようにする手段はありますか?

392:デフォルトの名無しさん
06/09/13 18:31:47
ShowDialogはモーダルですよ
Showを使えばいいけどモーダルじゃなくなりますよ

393:デフォルトの名無しさん
06/09/13 18:38:43
うーん、打つ手なさそうですか。
とはいえForm2はモードレスにすると色々と不都合が出るし…。

ともかく、ありがとうございました。

394:デフォルトの名無しさん
06/09/13 20:51:55
>>393
なんつーか思い込みが激しすぎるというか、頭が硬すぎないか?
Form2をモーダルで表示することには目的があるはずだが、
その目的を達成する手段はForm2をモーダルにする以外にいくらでもあるんじゃないの?

例えばForm1のコントロールを全部Enabled = Falseにするとか。(フォームは自分の
コントロールのコレクションを持ってるから簡単にできる)

あるいはForm2が表示されているときにForm1がアクティブになったらForm2.BringToFront
するようにしといて、Form2側にForm1を最小化するためのボタンを付けるとか。

395:デフォルトの名無しさん
06/09/13 20:52:54
まぁ、仕様(目的)をはっきりさせろっちゅうことだな

396:akl
06/09/13 23:49:17
今 VB.NETで開発してるんだけど、 それを J# とか java の.NET 語の変換(コンバート)
したいのだけど、 VB.NET から C# とかは 結構あるんだけど、 javaは無料で コンバートできる 
とこ(サイトか ソフト) ないかなぁ?

397:デフォルトの名無しさん
06/09/13 23:57:24
日本語でおk

398:デフォルトの名無しさん
06/09/14 06:36:08
>>393
なるほどな。
いわゆる操作性の悪いソフトって、こうやって作られていくんだろう。

アプリ特有の動作とか操作体系は気持ち悪いと思うのは俺だけか?
一般的なアプリと一貫性のある動作でシンプルに動くほうが直感的にわかりやすいだろうに。




399:デフォルトの名無しさん
06/09/14 06:46:43
>>396
VBの開発なら、J#に変換する必要なし。そのままお続けください。
J#の開発でVBのソースを移植あるいは流用したいなら、J#のとこ行って聞きなさい。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5189日前に更新/247 KB
担当:undef