VB2005 Xp(SP3) Oracle 9i
DataGridView でセルを選択したら、選択したセルの値(数値のみ)を
合計してテキストに表示したいのですが、セルを選択した時に
発生するイベントがわからないのでご教授ねがいます。
エクセルでセルを選択したらセルの合計値が画面右下に表示される
ようなイメージです。
よろしくお願い致します。
DataGridView のイベントそれぞれに、
ListBox1.Items.Add("イベント名")
を挿入しておけば、「選択時に発生するイベント」がどれであるか推測できますよね。
その上で、ヘルプでイベントの解説を見てみれば答えに辿りつけるかと思います。
それでも分からなかったら、再度質問してみてください。
魔界の仮面弁士さん
アドバイスありがとうございます。
アドバイス通り調べてみます。
魔界の仮面弁士さん
アドバイス通りで質問内容が出来ました。
SelectionChanged イベントを使用して
Dim W_Suryo As Double = 0
AZ.Value = 0 ←数値型のテキスト
For Each c As DataGridViewCell In DataGridView2.SelectedCells
If Double.TryParse(DataGridView2(c.ColumnIndex,
c.RowIndex).Value, W_Suryo) = True Then
W_Suryo = AZ.Value
AZ.Value = W_Suryo + DataGridView2(c.ColumnIndex,
c.RowIndex).Value
End If
Next c
こんな感じで実現しました。
ありがとうございました。
本題である「SelectionChanged イベント」に辿りつけたようですね。
ところで、合計の出し方に無駄がある気がします。
まず、セルの値は、c.Value から取得できますので、
DataGridView2(c.ColumnIndex, c.RowIndex).Value を
使う必要はありません。
また、Double.TryParse を行うと、W_Suryo にセルの値が入りますが、
その使い方が適切では無いかと思います。
と言う事で別案。
Dim total As Double = 0.0
For Each c As DataGridViewCell In DataGridView2.SelectedCells
Dim W_Suryo As Double
If Double.TryParse(CStr(c.Value), W_Suryo) Then
total += W_Suryo
End If
Next
'Label1.Text = total.ToString("#,0")
AZ.Value = total
魔界の仮面弁士さん
返信ありがとうございます。
おっしゃる通り合計の出し方に無駄がありますね^^;
別案でいきます。
最適なサンプルコードありがとうございました。
ツイート | ![]() |