投稿

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

DataGridView を 1クリックで編集モードへ

2024年04月19日 元ネタのURLが無くなってますね…下記コードを書いた意図が伝わらなくなってますね。 通常1クリックで編集モードにする場合はこの方法が良いと思います。 http://hkzumi.blog60.fc2.com/blog-entry-207.html DGVのプロパティの「EditMode」を「EditOnEnter」に設定する まぁ、条件設定で編集モード・非編集モードもこのモード設定変更か、下記コードかって感じですかね。 個人的に面白かったので、自己流と合わせて乗せておきます。 元ねた: http://architect360.apricot-jp.com/500tips/datagridview1.html DataGridView を1クリックで編集モードにしたいらしい。 いやーこの発想は無かったわ… 僕なら Private Sub dataGridView_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dgvList.CellClick Dim dgv As DataGridView = CType(sender, DataGridView) dgv.BeginEdit(True) End Sub または、 Private Sub dataGridView_CellEnter(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dgvList.CellEnter Dim dgv As DataGridView = CType(sender, DataGridView) dgv.BeginEdit(True) End Sub のどちらかでしょう… dataGridView.BeginEdit() の引数は好きにして… いやぁ~面白い発想だったので、メモ程度に残しておきましょう。

DataGridViewには注意が必要

今日、上がって来た不具合の原因…?がコレでした。 http://yiaowang.web.fc2.com/programing/vs_base/research_datatable_02.html (404やん!orz) 私の場合は、DataGridViewの1行目のデータのみ、反映されませんでした。 2行目以降は DataGridView の値が正しくバインドされた、DataTableに反映されました。 なぜに1行目だけ反映されないのだっ! いじめです… ってか、コレって .Net Framework のバグだと思うんですが… さて、上記URLでは、 ・DataGridView に対して値を設定しない。 ・DataTable.Copy() をする前には必ず DataTable.AcceptChanges() をする。 と記述がありますが、第3の私なりの修正方法です。 Dim tmp As DataGridViewCell = dataGridView.CurrentCell ' カレントセルを保持 dataGridView.CurrentCell = dataGridView.Rows(0).Cells(0) ' 値を変更するセルをカレントセルに設定 dataGridView.BeginEdit(True) ' 編集開始 dataGridView.Rows(0).Cells(0).Value = "aaa" ' 値を格納 dataGridView.EndEdit() ' 編集終了 dataGridView.CurrentCell = tmp ' カレントセルを戻す です。カレントセルが移動して良い人は、必要ないかも知れません。 私の環境では動きました。 ただ、重そうです…ループすると重そうです。全セル対応すると重そうです。 で、実験の結果、1行目だけ反映されないので、rows(0)の時だけこの処理を...

Visual Studio 2008 でまた勉強になった。

Visual Studio 2008 でデバッグすることは多いですが、 ソースの作り方が下手糞だと、 ・例外の握りつぶし(隠蔽) ・throw の失敗(http://blog.goo.ne.jp/tbinterface/494960f5e490576c6f80dfe2366c98ef/72) をやってしまって、出力ウィンドウには例外が出力されてるのに、実際に例外が発生した箇所がわからない事があります。 そんな時にはこの設定をして、例外が発生した箇所を特定しましょう。 1.ツールの「デバッグ → 例外」例外ウィンドウが開く 2.「Common Language Runtime Exceptions」のツリーを展開(.NETの場合) 3.出力ウィンドウに出ている、発生している例外クラスを探す   例:System.FormatException の場合、     「System」ツリーを展開     「System.FormatException」って言うのが居ます。 (右の「検索ボタン」からでもOKです) 4.右のチェックボックスにチェックをつける。 5.OKボタンを押下する。 この手順を行うことで、握りつぶしだろうが、なんだろうが、 例外が実際に発生した行で止まります。 強制的に止まります。 何度でも止まります。 ウザイほど止まります。 ブレイクポイントと同じなので、そこからデバッグできるし、 変数内容も確認できます。 いやぁ~~便利♪ チェックをはずせば元に戻ります。 この例外出てて良いのかなぁ~~? って疑問に思った時はコレッ! 出て良い例外なのか、出ちゃいけない例外なのか判断できます。 ちなみに、私の思想としては 【自作以外の例外なんて1件も出すんじゃない。例外前にチェックして回避せよ】 です。 ネットを見ると「(処理が面倒?)例外にしちゃえば良いじゃん。」って書き込みを良く見ますが、 出てよい例外と出てはいけない例外の区別が付かなくなるので嫌いです。 ちなみに、例外クラスを自作して、自作例外クラスをthrowするのは良いと思います。 事前チェックして処理できないなら自作例外クラスをthrowすべきです。

LANのTeamingってすごいかも

参考URL: http://haramaki666.blog45.fc2.com/blog-entry-71.html http://trackback.blogsys.jp/livedoor/inventrix/37521 必要なアイテム: LANアダプタが2つ LANケーブルが2つ まとめるルータなど(最近はVDSLルータなどは4箇所付いてるから良いよね) で、参考URLを元に、設定しました。 ダウンロードするものはこれ。 上から2つ目にある「Marvell Network Configuration Utility」をダウンロードしてください。 http://www.station-drivers.com/page/marvell.htm 1.指示通りににインストールします。 2.インストール完了後、再起動がかかります。 3.上記参考URL(Windows7の場合は、1個目がわかりやすいかな?XPは2個目かな?) で、僕は「Static」でチーミングしてみました。 (Dinamicで作ると通信出来なくなった…) これがはやいっ! 体感速度が倍以上になりました。 (測ったら少し増えただけなんだよなぁ~) これすげー ちなみに、マザーは、ASUSの「P5Q deluxe」です。 おためしあれっ!

.Net の例外処理にやられた…(Java使いは要注意)

今回は例外処理にやられました。 Javaで例外処理を行うときは、下記のソースになります。 1行目:try { 2行目: // 何かの処理を記述 3行目: // ここで例外発生。 4行目:} catch (Exception ex) { 5行目: // ログ出したりとか… 6行目: throw ex; 7行目:} その場合、StackTraceには、「3行目で例外が発生しましたよー」って出てきます。 で、それを.Net でも出来ます。が… StackTraceには、「6行目で例外が発生しましたよー」って出てきます。 どの行で例外が発生したかわからない…(T_T) じゃぁどうするのかっ!? .net では、下記にします。 1行目:try { 2行目: // 何かの処理を記述 3行目: // ここで例外発生。 4行目:} catch (Exception ex) { 5行目: // ログ出したりとか… 6行目: throw; 7行目:} そう。「throw」だけにしちゃいます。 引数のex 変数は使わないのです。 こうすることにより、「3行目で例外が発生したよー、6行目で例外が発生したよー」と StackTraceに出力されます。 いやぁ~参った。 参考URL: http://app.cocolog-nifty.com/t/trackback/209349/40576994 http://app.cocolog-nifty.com/t/trackback/209349/40588989 http://app.cocolog-nifty.com/t/trackback/209349/40601030 ちなみに、 1行目:try { 2行目: // 何かの処理を記述 3行目: // ここで例外発生。 4行目:} catch (Exception ex) { 5行目: // ログ出したりとか… 6行目: throw New Exception(ex.Message, ex); 7行目:} 「throw New Exception(ex.Message, ex);」とかやる人も居ます。 コレ...

.netでIPアドレス取得

1つのPCに、複数のNICが刺さっている事は、業務では普通ですよね。 会社のPCでも普通ですよね。 で、その場合のIPアドレスの取得方法ってどうするの??? 通常は下記のやり方で問題無いと思います。 Dim list As System.Net.IPAddress() = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName()) ですが、複数NICの場合、IPアドレスが複数取れるから、どれが優先順位の何番目かがわからない… IPAddress クラスに優先順位無いし… 誰かやり方教えてくれっ!!! ちなみに優先順位って言うのは、(XPの場合) 「ネットワーク接続 → メニューバーの詳細設定 → 詳細設定 → 接続」 で決まってます。 その順番通りに返してくれてれば良いんだけど… どこにもその記述が無い(T_T) ちなみに、実験結果は、優先順番通りに返却されてきてるんだよなぁ~~~ はぁ、明確に書いてあるところ知ってたら教えて~~