[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 04/09 11:51 / Filesize : 214 KB / Number-of Response : 894
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ(Part31)



1 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:44:56 ]
前スレ

VB.NET質問スレ(Part30)
pc12.2ch.net/test/read.cgi/tech/1242522019/l50

テンプレは>>2

384 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 18:25:35 ]
>>380
ダメグラマらしい意見だね。

全てのスレッドを終了させるメソッドは、それ自身が終了させようとする
スレッドの中の一つから呼ばれる。

スレッドの終了処理は、実際にターゲットのスレッドが終了したかどうかの
確証をするのが普通だから、例えばそれをベタにJoin()を使って行うとデッドロックする。

385 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 18:27:55 ]
っていうか、結局起こりうる「問題」って何のことなのかね。
まったく意味がわからん。

386 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 18:33:59 ]
普通じゃないし今回の話でも確証なんて意味がない。
止まらない可能性まで考慮するならそもそもJoinなんて使っちゃダメで
自分自身だからどうという話ではない。

まだ続ける気?
なら>>352の例を示してほしいんだがな。

387 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:07:39 ]
>>385
>>349に対して>>352で面倒なことしなくてもって言ってるんだから
しかもスレッドを終了させるって言ってるんだから、
普通に考えればアボートすると言ってるとしか読み取れない。
本来そんな事しないでもすむのにスレッドをアボートするってだけで既に問題ありとされるのが普通。
スレッド使う上での常識としてね。

で、どっちにしても書き方からスレッドに関して素人なのが明らかだから、
コード書かせりゃそれ以外にもどっかに問題あるコードになる可能性が高いと思ってな。

まあ必要ないのにアボートする時点で常識的に問題ありとみなしていいレベルだが。

まさかフラグ立ててスレッド側で監視しつつ終了待機するメソッド作るのが>>349よりベタとは思わないし、
フラグ立てるだけなら普通スレッドを終了するメソッドとは言わないし
そもそもメソッドにするだけで面倒が増えてるだけ。
>>349ですら面倒で、よりベタとなるとアボートするくらいしかない。


ってのが>>354の意図。
ああ長い。


388 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:15:15 ]
まあ正直いうと単に>>354みたいに書いたら
どっかでボロを出すかと思ったのも有るけどな。
>>352も微妙な問題があるって自分で言ってるんだから、
本人じゃないならあとは>>352に微妙な問題について聞いてくれよ。



389 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:18:48 ]
>>387
なーんか2ch脳らしい強引な物の言い方だね。
何度も言うように

 スレッドの終了 ≠ スレッドのアボート

君が両者をイコールだと思うのは完全に勝手だが、
「俺にスレッドの終了=スレッドのアボートだと思わせるのはお前のせい」
みたいな自己中心的な物言いをされても、「恥を知れ」以外に返す言葉がない。

まあ、>>352の発言が言葉が足りずミスリーディングなのは認めるけど、
要は、スレッドで実行したい処理をクラスでラップする「ベタ」な方法を取るべきであって、
>>349的なスパゲティーコードはよくないって事だよ。

390 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:31:52 ]
お前>>349のやり方の意味分かってるのか?
かなりベタでスパゲッティとかいうようなやり方じゃないぞ。
だいたい>>349はプリミティブレベルの考え方に近いもので
クラス化するとかどう書くかは別にやりたきゃ好きにしろってレベルだぜ。

つかクラスでラップってまたいきなり初めて出てきたな。
>>352がそういう意図ってお前エスパーでも相手にしてるのか?
流石にそのベタなコードとやらを示してもらわないと分からない。
あっ余計な事言ったか、またループだな。


391 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:35:23 ]
スレッドで実行したい処理をクラスでラップする、なんていうのは、
「ベタ」、つまり説明不要の定石だから説明しなかったまで。

っていうか、もういいわ別に。
一人かどうか知らんけど君みたいな馬鹿言い負かしても意味ないし。


392 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:38:21 ]
こんな感じ?待っていれば他のスレッドも終了するという前提だけど。

Static testArr() As Boolean = New Boolean() {False}

SyncLock testArr
 Dim testRes As Boolean = testArr(0)
 testArr(0) = True
 If testRes Then Exit Sub
End SyncLock

For Each thread In threads
 If Not Object.ReferenceEquals(thread, thread.CurrentThread) Then
  thread.Join()
 End If
Next

testArr(0) = False




393 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:53:18 ]
>>391
今回は元々やりたい処理がそれぞ別メソッドになってるけど、
それでも「処理」をクラスでラップするのが常識かな?
一般に処理をクラスでラップするのが常識なのは、
処理に必要なデータをクラス側で管理するためで
今回のはどちらかと言えばスレッドの制御をクラスの機能として実装し、
処理はデリゲートとしてスレッド制御のクラスに渡すってのが普通な気がする。

C#なら匿名メソッドやらラムダ式使えばすごいシンプルに出来るんだがな。
今のVBって複数行のラムダ式使えたっけ?
次のバージョンからだったかな?


394 名前:351 mailto:sage [2009/09/26(土) 20:17:09 ]
だから〜、沢山スレッド作っておいて一等賞を取ったスレッド以外を
終了させるなんていったい何がしたいんだ〜?

395 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 21:13:59 ]
>>391
>スレッドで実行したい処理をクラスでラップする、なんていうのは、
>「ベタ」、つまり説明不要の定石だから説明しなかったまで。

>>347のでどうやんだよこれ…?


396 名前:347 mailto:sage [2009/09/26(土) 21:22:45 ]
盛りあがってますね
>>349の方法でやってみます。ありがとうございました。

>>351
最小で1つ、多くてもせいぜい3つぐらいなんですけどね>スレッド数
内容は禁則事項です♪

397 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 22:45:23 ]
そんなスパゲッティで面倒な方法はだめだ。
>>352
>>376
>>389
>>391
を見てクラスでラップする「ベタ」な方法でやるんだ。
こんなの定石だから>>351はあえて教えてくれないぞ。
コードができたら問題点を指摘してくれるから見せてみるんだ。


398 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 22:49:50 ]
言っとくがこんな超初歩なところで問題あるコードなんて書いたら
ちょっとオカシイってことだからな、超初歩以前に君がおかしくないかがためされるんだぞ。
心してかかるんだ。


399 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 22:54:17 ]
そろそろウザイ。

400 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 23:16:42 ]
テンプレ
Q. 〜のやり方を教えてください
A. クラスにラップしてベタに書け

401 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 03:41:35 ]
デリゲートでマルチスレッドし、AsyncCallbackでコールバック関数で残りすべてのスレッドを終了させればOK

402 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 09:27:16 ]
>>401
BackgroundWorkerでよいのじゃないか



403 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 11:06:32 ]
ダメとは言わないが向いてないね。
意味がない。


404 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:13:46 ]
>>401
AsyncCallback関数の中をどうやって実装するのだろう?
なんか振り出しに戻る予感。。

405 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:49:39 ]
BackgroundWorkerが一番楽だと思う。
WorkerCompleteあるし、CancelAsyncあるし。
>>401は、どうやってほかのスレッド終了させるんだろう。

406 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:50:11 ]
結局大して変わらないよね。


407 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:52:23 ]
>>405
どっちも大して変わらんて。


408 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:55:10 ]
Environment.Exit()

409 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:56:59 ]
VB2008の555だったかの究極?技?何とか言う本
立ち読みしてみたら酷かった。
この手の本はあんま進歩しないなあ。
ちゃんと理解してる内容だけ書けばいいのに。
.NET系って本に間違いが多すぎる気がする。


410 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:58:55 ]
>>408
それだとプロセスが終了しちゃうじゃん。

411 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 13:59:05 ]
>>347っぽいコードをそれぞれのやり方で書いてみれば
どれがやりやすいか、あまり差がないか
よく分かると思うぞ。


412 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 15:00:04 ]
>>410
>>347は全てのスレッドを終了させると書いているので間違いではないな。



413 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 15:03:56 ]
>>409
ドボンちゃんのサイト等があるのに今どきそんな本を買う人が居るのかね〜?

414 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 16:08:22 ]
詳しく

415 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:01:14 ]
継承されるクラスを作成するときに
オーバーライドとイベント実装をどこで切り分けていますか?

416 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:02:24 ]
>>414
ドボンを?

417 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:05:00 ]
継承を前提にするんだったらイベントはいらん
継承しないで外からアクションを挿入するためにイベントを使うんだ

418 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:15:19 ]
>>415,>>417
二人とも何を言ってるのか意味不明すぎる。
エスパー同士の会話なのかアーパー同士なのかどっちなんだ。

419 名前:417 mailto:sage [2009/09/28(月) 20:23:03 ]
「継承されるクラスを作成」と書いてあるから,抽象クラスでも作ってるのかと思った
たぶん勘違い
Formの派生クラスを作ったときにFormのOnPaintをオーバーライドするべきかPaintイベントを使うべきか
というような話なら,一般的にはオーバーライドした方がいい(少なくともMSDNにはそう書いてある)

420 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:50:51 ]
>>419
Formは必ず派生クラスで使うのにOnHogeとHogeイベントの両方があるのかって話し。
実行効率が良いのはOnHogeだけど使いやすいのはHogeイベントかなと。
だったらイベントだけで実装しても良いのではないかと思っただけです。

421 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:04:15 ]
OnHogeはオーバーライドされるためだけにあるんじゃない。
派生クラスから基底クラスのOnHogeを呼ぶことでHogeイベントを発生させるためにも使われる。
.NETのガイドラインで決まってることだから黙って従え

422 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:15:33 ]
>>420
まあ>>421みたいな教条主義もどうかと思うが、
自分で発生するイベントを自分で受信する、普通に考えれば間抜けチックなプログラミングを
「使いやすい」と感じるセンスには疑問を持った方がいいと思うよ。

それはおかしい。かなり変てこなセンスだ。



423 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:20:18 ]
WPFになるとOnHogeを持たず派生クラスでもイベントハンドラを使うしかないイベントが多く出てくるよ。
まあWPFは設計が全然違ってて機構上そうなってるんであって
WinFormsではおとなしくOnHogeを使うべき。

424 名前:420 mailto:sage [2009/09/28(月) 23:25:16 ]
オレの説明がとっても変だったか。。
仮想メソッドを使うかイベントデリゲートを使うかって話です。
便利と言うのはIDEがイベントを挿入してくれるから。

425 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:27:33 ]
仮想じゃなくて抽象メソッドだった。

426 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:44:41 ]
>>422
IDEとトータルで考えない方がセンスがないだろう。
全部イベントなのにフォームとコントロールでわざわざ使い分けるのがセンスがいいのか?


427 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:45:41 ]
>>425
つまり、別の言い方をすればprotectedなイベントは有りかって話かな?
少なくとも.NETクラスライブラリの中にはあるね。
個人的はそういう方法を取りたい場面に当たったことがない。

428 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:14:14 ]
>>424
継承と委譲の区別は出来てるか?

429 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 16:05:39 ]
>>416
冗談w

430 名前:デフォルトの名無しさん [2009/09/29(火) 20:06:10 ]
>>428
抽象メソッドとデリゲートは結果的の同じだが。

431 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 21:44:31 ]
イベントは引数の形式が決まってるだろ(従わないことも可能だが完璧なガイドライン違反)
テンプレートメソッド作る度にいちいちHogeEventArgsやHogeEventHandler用意すんの?
それに抽象メソッドなら派生クラスで実装することを強制できる

432 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 11:48:08 ]
>>424
便利かなぁ…?
とりあえず overrides空白 まで入れればインテリセンスは利くわけだし。

>>430
つまり「よくわからない」ってことね。
そのフォームを他のフォームのインスタンスに含めるのであれば
いちいち派生させずともイベントを追加してやればいいし
常に派生させるんだぜ!というのなら Protected Overridable なメソッドを
用意してやればいい。
まあ両方用意しとくのが無難だし、>>422 には同意しとく。

>>431
>いちいちHogeEventArgsやHogeEventHandler用意すんの?
特に追加情報がなければ EventArgs をそのまま使えばいいし、
そーすっとデリゲートも
Public Event Hoge(ByVal sender As Object, ByVal e as System.EventArgs)
の一行で済む。



433 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 11:49:17 ]
VB終了のお知らせ
gigazine.net/index.php?/news/comments/20090930_security_essentials/

434 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 19:09:43 ]
なんでM$製のアンチウィルスソフツがVBに関係するのか、>>433には説明を求む。
文中検索掛けてもVBもVisualも引っかからなかったのだが。

435 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 19:18:59 ]
古典的ネタにマジレスカコイイ

436 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 19:37:14 ]
>>432
>とりあえず overrides空白 まで入れればインテリセンスは利くわけだし。

お〜、そんなんが出来るんだ。
知らなかった。ありがと〜ん。


437 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 19:38:10 ]
ネタだったのかYO!
何かVB.NETの動作を阻害するものが入って動かなくなるのかと心配しちゃったじゃないかw

438 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 19:50:32 ]
インテリセンスとGoogleが無いとプログラミングが出来ない身体になってしまった。

439 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 19:51:46 ]
それでいいのだ

440 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:23:36 ]
>>428
オブジェクト指向で言う委譲とデリゲートの委譲は別のものでしょ?

441 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:54:58 ]
同じだ
オブジェクト指向でいう移譲を手軽に使えるようにするための仕組みがデリゲート

442 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:04:15 ]
どこがどういうふうに手軽なの?



443 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:09:17 ]
Javaやればありがたみがわかるよ
いちいちイベントハンドラごとに内部クラス作ってインターフェイス実装するんだぞ
やってることは本質的にデリゲートとまったく同じだけど糞面倒で可読性も悪い

444 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:19:01 ]
別に内部クラスとかつくらなくても、クラス自身でインターフェース実装して、
addActionListener(this);
とかできるじゃん。
全然面倒くさくないし、簡潔明瞭じゃん。

445 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:25:55 ]
同じ型のリスナを複数実装したいときは?
それに,直接実装するならpublicにしないといけないだろ?
イベントハンドラが全部publicで同じ名前(実際には無理だけど)ってどう思う?

446 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:37:32 ]
引数で区別できなかったっけ? publicで何か不都合ある?
どうしても不都合なら、別に内部クラスとかつくるのもそれほど面倒とは思えんが。

447 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:44:33 ]
>>446
443じゃないけど、面倒に決まってるでしょ。
だいいち、ただコールバックして欲しいだけなのに
本質的でないインターフェイスが必要になる点で鬱陶しすぎる。

448 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:48:43 ]
>>446
Javaやってるとはとても思えないな
カプセル化ってわかってる?
コントロールを削除したらpublicメンバを削除して継承してるインターフェイス減らすの?

449 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:58:47 ]
インターフェースが必要かデリゲートが必要かの違いだから面倒くささ度の観点からみれば対して変わらん。
インタフェースの方が実装の有無が他クラスから判断できるとか、使い回しができるとか、便利な面もある。
実際、AOPではインターフェースのそういった性質が多用されている。

同様にインターフェイス外すのも、デリケート外すのも俺的には面倒くささはいっしょ。特にC#とJavaでは。
VB.NETのは場合メソッド削除するだけだから幾分簡単に見えるが大した違いではない。あとIDEの自動化による
簡便性の違いは多少あると思う。


450 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 22:01:14 ]
Javaは単一のactionPerformedで全部受けてifでイベントの発生源ごとに分岐するパターンが最悪
WndProcかよ

451 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 22:24:35 ]
orz

452 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:49:19 ]
>>449
デリゲートはあくまで委譲のための(処理をカプセル化するためといってもいい)しくみなんだし、
いわゆる一般的な意味でのインターフェイスに関して
インターフェイスかデリゲートかっていうものではないでしょ。

javaだってイベントは普通委譲モデルで、ほとんどデリゲートとおんなじことやってるだけだし。
この使い方においてはインターフェイスもデリゲートも大した違いはない。
まあ専用のしくみであるデリゲートの方がよっぽど分かりやすいと俺は思うが。

.NETの言語だって、本来の意味でのインターフェイスの代わりに
デリゲートを使うなんてことは普通はしない。

ただし、フォームのイベントなんかは、実質考え方自体がイベントなんだから、
自分自身のイベントもコントロールなんかと同じようにイベントハンドラでやっても
何らおかしいことはない。




453 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:59:22 ]
問題はIDEとの相性の悪さ
JavaでIDEにイベントリスナを自動生成させたりするとものすごーく分かりづらいコードが出来上がる

454 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 10:13:13 ]
DataBindingしてるソースの方を変更したとき、コントロールに同期させるには
どうすればいいでしょうか?
IPropertyChangedを実装する方法はわかったのですが、そういった準備なしに
どこかのメソッドを呼び出す形で同期することはできないでしょうか?

455 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:58:40 ]
ResetBindings

456 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 09:56:55 ]
Form2からForm1のTextBox1.Textを設定できネーよなんとかしろ

457 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:07:58 ]
>>456
するな、そんな阿呆なこと。

Form1 に、TextBox1.Text を取得/設定する
Public なプロパティを定義するのが常套。

458 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:09:59 ]
むしろVBだからこそ、そんな阿呆なことができるべき

459 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:11:00 ]
VBだからどうでもいいよw
Form1のデフォルトインスタンス使えばおk
コントロールのアクセスレベルはデフォルトでinternalだからそのままアクセスできる

460 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:34:49 ]
>>459
>デフォルトでinternalだから
Friend じゃなくて?

461 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:40:35 ]
ああC#とごっちゃになってた

462 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:52:15 ]
>>458
規定のアクセスレベルがFriendなので同じプロジェクト内からは
出来てしまうアフォな仕様ですよ。
気に入らぬのでPrivateに変えてます。

C#だとPrivateなんだけどな。



463 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 12:24:08 ]
規定
ガイテイってよむの?

464 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 12:45:39 ]
ttp://dictionary.goo.ne.jp/
ほれ

465 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 12:50:24 ]
>>463
のりさだ (人名) です。

466 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:13:36 ]
>>463
既定と間違うのはよくあること。
時々“規定クラス”と変換してしまうのは個人的によくあること。

467 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:12:43 ]
>>463
ガイテイ
概定ってかくの?

468 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:53:43 ]
オマエらどんな餌にでも食いつくんだなw

469 名前:デフォルトの名無しさん [2009/10/06(火) 14:35:51 ]
失礼します
Convert.ToStringで、数値を16進数にし、さらに1桁の場合は頭に0をつけて文字数を揃えるのを一括して行う方法はあるのでしょうか?
現在は16進数の文字列にしたあと、文字数をチェックして1桁なら0をつけているのですが、書き方が汚くなってしまうので・・・。
すいませんがよろしくお願いします。

470 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 15:02:32 ]
>>469
Convert.ToString(Int32, IFormatProvider)
IFormatProviderとしてNumberFormatInfoを使う。
なんて面倒なことしないで、
string.Format("{0:X04}", 100)
じゃ駄目?

471 名前:デフォルトの名無しさん [2009/10/06(火) 15:11:02 ]
>>470
できました、ありがとうございます

472 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 16:50:49 ]
むしろ100.ToStringで



473 名前:デフォルトの名無しさん [2009/10/06(火) 20:14:58 ]
("{0:X04}", 100)
{0:X04}と100のイミは?

474 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 21:22:52 ]
前後をある文字で埋めるだけなら、String.PadLeftやPadRightもあるね。

>>473 複合書式指定文字列と書式設定するObject

475 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 00:39:12 ]
うーむ・・

476 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 01:55:32 ]
もとの質問は2ケタでいいらしいぞ

大昔のBASICちっくに
Right$("0" & Hex$(数字),2)とかどうだ


477 名前:デフォルトの名無しさん [2009/10/08(木) 17:19:21 ]
データグリッドビューでデータを表示させたとき
上の方をクリックすると勝手に列ごとにソートしてくれますが
そのときのイベントを取得することってできますか?
どうしたらよいかおしえてください

478 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 17:26:43 ]
Sortedイベントとかあるけど

479 名前:デフォルトの名無しさん [2009/10/08(木) 19:29:40 ]
>>469
i.ToString("X02")

480 名前:デフォルトの名無しさん [2009/10/08(木) 22:42:50 ]
タイマの使い方がわかりません。以下のソースで試してみましたが、
Threading.Timerは時間通りに実行されず、他の2つは実行もされません。
Timers.TimerとWindows.Forms.Timerはデザイナの方で定義し、パラメータはデフォルトです。
イベントハンドラはすべてtimeout=trueとしているだけです。
どなたか教えてください。よろしくお願いします。

Dim timeout As Boolean
Private Sub Button1_Click(略) Handles Button1.Click
  timeout = False
  Dim ThreadingTimer As Timer = New Timer( _
    New TimerCallback(AddressOf ThreadingTimer_Tick), Nothing, 0, 1000)
  While timeout = False
  End While
  ThreadingTimer.Dispose()

  timeout = False
  TimersTimer.Interval = 3000
  TimersTimer.AutoReset = False
  TimersTimer.Enabled = True
  While timeout = False
  End While
  TimersTimer.Dispose()

  timeout = False
  FormsTimer.Interval = 2000
  FormsTimer.Enabled = True
  While timeout = False
  End While
  FormsTimer.Dispose()
End Sub

481 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 22:51:51 ]
無限ループやめろ

482 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 23:19:11 ]
直接は関係ないけどDisposeの書き方が悪い
Try-FinallyのFinallyの中でDisposeするか,Using文を使ってDisposeは書かない



483 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 23:23:45 ]
まあ普通はタイマを一つのメソッド内でDisposeするなんてないだろうけどな

484 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 23:25:12 ]
CPU目いっぱい使ってループしてんだから、
1コアだとかなり反応悪いだろうな。
2コア以上ならそれなりに動くかも知れないが。

で、デザイナではっつけてる方はそもそもUIスレッドでイベントが発生するしくみになってるから
これじゃ動くわけがない。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef