投稿

5月, 2012の投稿を表示しています

DataGridView は奥が深い…

.NET で、DataGridViewを使うことが多いんだけど、 下記の例をやる方法がやっとでわかったのでメモする。 1.DBには「1,2,3,4,5…」と数字になっているが、画面は「あ、い、う、え、お…」と表示させたい。 2.ユーザーには「あ、い、う、え、お…」と入力させ、DBには「1,2,3,4,5…」と更新させたい このような場合、DataGridViewの「CellFormatting」イベントと「CellParsing」イベントを使う 1.DataTableには、DBの値(数字)がそのまま入力されている。 2.DataGridView.DataSource = DataTable として、いつも通りに紐付ける。 3.「DataGridViewの.CellFormatting」を実装する。 コレで、画面上のデータグリッドには変換後の値が表示される。 実装例: If e.Value.ToString() = "1" Then e.Value = "あ" End If 4.「DataGridViewの.CellParsing」を実装する。 コレで、ユーザーが入力した値を、DB用に変換する。 値の入れ替えが終ったら、必ず「e.ParsingApplied = True」を設定すること。 設定しないと反映されません。 実装例: If e.Value.ToString() = "あ" Then e.Value = "1" End If e.ParsingApplied = True 参考URL: http://dobon.net/vb/dotnet/datagridview/cellparsing.html 覚えておこうっ!!! ちなみに、下記順番でイベントが発生したっぽい。 (表示されているイベントしか試してないので、他のものがある可能盛大) 下記イベント順は参考です。信用しないでね。 Tabキー移動の場合: dgvList_CellLeave dgvList_CellParsing dgvList_CellValueChanged マウスで、セルをクリック: dgvList_Cel...

コマンドプロンプトで、アプリケーションを再起動する。

taskkill /f /im テスト.exe start "" "C:\アプリケーション\テスト.exe" を、cmd ファイル(batファイル)に保存して、実行すれば、 アプリケーションが再起動します。 (ちなみにXPのみかも 7以降は未確認) タスクと合わせて、自動再起動をさせて見ましょう。 自動テストとか、耐久テストとかで再起動が必要な時に便利。 ま、私の場合は、違うシステム(シミュレータ)が一定時間ごとに固まるから その為に作ったんだけどね… 使えないシミュレータを作るナァ~(T_T

Wordは奥が深い…

久しぶりにワードを使った。 ら、アウトラインで文章を書いたのに、Tabキーを押してもインデントが変わらない。 アウトラインとは: 1 1.1 1.1.1 … とかなる書式の設定のことです。 なぜだ!? と思ったらコレだった。 http://www.konomiti.com/Wo_06.html#204 オートコレクトの設定を誰かが変更したのね。 はぁ、イライラした。 ちなみに私は、 「Tab/Space/Backspaceキーでインデントとタブの設定を変更する。」 のチェックを付けます。 tabキーで、インデントが上がり下がりしないなんて、使いづらくてしょうがない。

WinDbg の注意事項など

イメージ
1.プロセスをアタッチしたままWinDbgを終了させると、アタッチしたプロセスごと終了します。 必ず、「Debug」⇒「Detach Debuggee」を実行してから終了する事。 コレ: 2.1度アタッチして、例外でストップさせた場合、デタッチしてもTry~Catch が機能せず、予期せぬ例外としてプロセスが落ちます。 3.コマンドの意味 ・SOSファイルの読み込み(コレ必須) 「.NET2の場合」 .load C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\SOS.dll .loadby sos mscorwks 「.net4の場合」 .load C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\SOS.dll .loadby sos clr ・アタッチしたプロセスのメモリー調査 !heap -stat -h 0 ・指定したサイズの使用場所を特定 !heap -flt s サイズ (例:!heap -flt s 3890) ・メモリーのスタックトレース !heap -p -a アドレス (例:!heap -p -a 058d5e40) ・アタッチしたプロセスの全アドレスデータ !heap -p -all ・例外発生時に止める sxe clr ・例外発生場所の部分スタックトレース !sos.clrstack ・例外発生時の全体スタックトレース !sos.dumpstackobjects ・例外メッセージ表示 !sos.pe アドレス (例:!sos.pe 01d70050) とりあえずこんなもん。

悲しいなぁ…

10分ぐらいソースを解析したらわかる内容を 僕より2ヶ月も3ヶ月も長くソースを修正してる人が判らないとか… それを笑って終らせてるし… はぁ、こんなので金貰ってるんだ。 悲しいねぇ~ まぁ、10分も解析しなきゃ解らないログクラスを作った奴らがくそなんだが…