dポイントプレゼントキャンペーン実施中!

VB2005を勉強しているものです。毎度お世話になりありがとうございます。
今回ですが、DataGridViewを使用したプログラムで、起動時は必ず一番上のセルが選択され、DataGridView1_SelectionChangedイベントが動いてしまい、都合悪いのです。選択されない方法はありませんか

また選択されたセルの色が青になりますが、色の変更はできますか

ご教授願います。よろしくお願いいたします。

A 回答 (2件)

Private Sub DataGridView1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged


If DataGridView1.Tag Is Nothing Then
DataGridView1.CurrentCell = Nothing'(1)
DataGridView1.Tag = 1'(2)
Exit Sub
End If
'2回目以降のイベント処理
MsgBox("SelectionChanged")
End Sub

ではどうでしょうか?
ちなみに(1)と(2)が逆ではだめです。
    • good
    • 0

表示されれば選択は必ずされると思うので、イベントを起こさないのは難しいと思います。


たとえばDataGridView1_SelectionChangedの先頭に、
If DataGridView1.Tag Is Nothing Then
DataGridView1.Tag = 1
Exit Sub
として、1回目はキャンセルするとか・・・
選択を表示したくないなら、
DataGridView1.CurrentCell = Nothing
とか(イベントは起こりますが)・・・

選択されたセルの色は、DefaultCellStyleのSelectionBackColorで、デザイン時でもプログラム中でも変更できると思います。

この回答への補足

お世話になっております。いつもありがとうございます。
教えていただいたソースですが、
If DataGridView1.Tag Is Nothing Then・・・はなぜかできなくて、一回目のイベントをキャンセルできませんでした。

DataGridView1.DefaultCellStyle.SelectionBackColor = Color.Empty
DataGridView1.DefaultCellStyle.SelectionForeColor = Color.Empty
はできませんでした。
DataGridView1_SelectionChangedイベントDataGridView1.CurrentCell = Nothingはできました。

お願いいたします。

補足日時:2008/01/22 20:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!