So-net無料ブログ作成

色のカスタム   ~便利ツール♪  そして目を大事に・・・~ [Break]

 

グリッドなんか特にそうだけど、 背景色をカスタムしたいとき

の便利ツール。

 

http://tomari.org/main/applets/iro/gen.html

 

まったく同じ色にはなんないけど、これでアタリつけてから、

デバッグして微調整。

 超便利[るんるん]

 

 

今回の要望が「目に優しい色」っていわれたんでググッてみると・・・

 面白かったですわw

 

http://pc11.2ch.net/test/read.cgi/desktop/1122045367/

http://yukitachi.cool.ne.jp/column/c010menotsukare.html

 

 

ちなみに以下で、グリッドの奇数行だけカスタム色に設定。

 p_Grd.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(190, 255, 190)

 

 

でも結局、コアユーザーじゃないふつーの人は(オレも含め)、

明るい画面を求めるんだよね。

このブログももう少し目に優しい配色にしようかしら。。。


画面Load時、controlへのFocus [コントロール]

----------------------------------------------------------
(開発・実行環境)

Microsoft Visual Studio 2005 Tools for Applications

Microsoft Visual Basic 2005
----------------------------------------------------------

 (課題)

 画面Load時、

(control).Focus

してもFocusしてくれない!

 

(解決法)

同じ悩みを持った人、割と多い気がするんだけど。

(オレだけ?)

初期化するときとか。

(前開いたときの情報が残ってたり。。ちょっと古い?作り方してるもんで。。)

 

以下のようにすればFocusしてくれます。

 

       Me.ActiveControl = Me.(control)

 

LoadされるまではControlがアクティブになってないのかしらね~。

ちなみにMeはいらないけど、あった方がコーディングしやすいでしょ。

 


DataGridViewのイベント [DataGridView]

----------------------------------------------------------
(開発・実行環境)

Microsoft Visual Studio 2005 Tools for Applications

Microsoft Visual Basic 2005
----------------------------------------------------------

 

DataGridView上のデータの条件によって、

グリッドの色を変えたり、データを別のとこに表示したりする際に

使うイベントについて。

 

一番使えるのはDataGridView.CellEnterイベントでしょうか。

 

今回やりたかったのは、行のデータを明細部に表示するといったもので、

はじめはDataGridView.RowEnterイベントでやろうと思ってて。

ただ、RowEnterだと、画面ロード時にNullReferenceのエラーが出るの。

 

なぜか。

 

CellEnterイベントは「現在のセルが変更になったとき発生」

RowEnterイベントは「行が入力フォーカスを受け取り、現在の行になる前に発生」

 

似たような名前なのに違うタイミングで起こるなんて・・・紛らわしぃ。。。

まぁFormの初期化をちゃんとしとけば大丈夫なんだろうけど・・・

CellEnterで済ませました。

 

 

しかし、DataGridViewはメンバが多いから大変だぁ~~。

http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview_members.aspx


DataGridViewを使った検索データの表示と削除 [DataGridView]

----------------------------------------------------------
(開発・実行環境)

Microsoft Visual Studio 2005 Tools for Applications

Microsoft Visual Basic 2005
----------------------------------------------------------

(課題)

DataGridViewにDBの検索結果を表示する。

また、それをクリアする。

 

(解決法)

DB内の検索データをDataGridViewに表示する際、

DataSourceを使わずに行なった。

DataSourceを当ててる場合は、DataSourceをClearか何か

すれば良いらしいけど。 

 

表示は、検索結果の入ったDataSetを一度配列に入れて、

その配列内のデータを行毎にDataGridViewに流す。

(配列はDataGridViewのColumn数を要素数とする)

 これを行数回分まわす。

(グリッドのColumu数が検索結果の列の数と違う場合は1列ずつ入れました。。)

 

削除する場合は一気にClearできなかったので、

行数を数えて、その回数分行削除処理をまわす。

 

ちなみにこのとき使ったメソッドは、

「DataGridView.Rows.RemoveAt()」。

DataGridView.Rows.Remove()じゃダメやった。。

行を”コレクション”から削除するメソッドなんだけど、

うまく全行消えてくれず。。。

たぶん、消した分だけコレクションが変化した(行数が減った)からだと思うけど。。

(しかし、コレクションってなんかいまいちピンとこん。。。)

ちなみに以下が”上手くいかなかった”ソース。。

 

(p_GrdはDataGridViewのオブジェクト)

 'グリッドの行数の取得
        Dim rowCnt As Integer = p_Grd.Rows.Count

        行の削除()
        For Each row As DataGridViewRow In p_Grd.Rows
            If row.Cells(0).Value.ToString IsNot Nothing Then
                p_Grd.Rows.Remove(row)
            End If
        Next

 

 

行の位置を指定して削除する「RemoveAt()」メソッドを使いましたとさ。

 

ちなみにグリッドデータを削除する場合は下から(行番号の大きい方から)消すよう注意!

消してったら行数減ってくからね。


タブオーダー [コントロール]

----------------------------------------------------------
(開発・実行環境)

Microsoft Visual Studio 2005 Tools for Applications

Microsoft Visual Basic 2005
----------------------------------------------------------

GroopBoxやDataGridViewを用いた画面開発で、なぜかTabが

プロパティのTabIndexで設定した順番に遷移してくれず。。。

 

どうやらGroopBoxやDataGridViewを用いた場合は、まず大きい枠のTab遷移順を決めて、

その枠の中での遷移順を決めるらしい。

開発画面上部の[表示]→タブオーダーを選び、

遷移していく順にクリックして設定。

 

これでTabIndex設定がらっくちん♪


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。