- PR -

VB.NET2005のDataGridView・セル内のボタンラベルの変更

1
投稿者投稿内容
悩める四十路男
会議室デビュー日: 2007/09/20
投稿数: 3
投稿日時: 2007-09-20 15:51
VB.NET2005のDataGridViewで、セル内にボタンを作成してます。
ボタンをクリックする都度、ボタンの表記を「ON」「OFF」と切替えたいのですが、
ボタンのラベルを変更する方法がわかりません。

いろんなサンプルでは行を追加する際にラベルを指定する方法は載ってるんですが、
既存の行のボタンのラベルを変更する場合にはどうすればよいのでしょうか。
@echo
会議室デビュー日: 2005/01/19
投稿数: 18
投稿日時: 2007-09-20 22:19
引用:
ボタンをクリックする都度、ボタンの表記を「ON」「OFF」と切替えたいのですが、
ボタンのラベルを変更する方法がわかりません。


違っていたらごめんなさい。C# で書くと、

コード:
private void dataGridView1_CellContentClick(...)
{
  DataGridViewCell cell = dataGridView1.CurrentCell;
  if (cell is DataGridViewButtonCell)
    cell.Value = (string)cell.Value == "ON" ? "OFF" : "ON";
}


のようなことでしょうか...?

引用:
いろんなサンプルでは行を追加する際にラベルを指定する方法は載ってるんですが、


ラベルを指定する方法ってどうやるのでしょうか?
悩める四十路男
会議室デビュー日: 2007/09/20
投稿数: 3
投稿日時: 2007-09-22 06:30
お返事ありがとうございました。
.Valueのようなプロパティがあればわかりやすいんですが、
この場合見つからないんですよねえ・・・。
C#の場合は準備されてるんですね。

>ラベルを指定する方法ってどうやるのでしょうか?
各行にボタンの列がひとつだけあるDataGridViewを想定すると、

DataGridView1.Rows.Add("有効")

とするだけでラベルが「有効」となったボタンを含む行が追加されます。
KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-09-22 12:37
VBでもC#でも差はありません。
検証してみましたが、Value プロパティで設定できました。
よっし〜。
ベテラン
会議室デビュー日: 2007/04/17
投稿数: 89
お住まい・勤務地: 北のほうの国
投稿日時: 2007-09-22 14:34
VBだとこんな具合でしょうか?
コード:
    Private Sub DataGridView1_CellContentClick1(...) 
        Dim cell As DataGridViewCell = DataGridView1.CurrentCell
    'どの列か
        If cell.ColumnIndex = [ボタン列] Then
            If cell.Value.ToString = "ON" Then
                cell.Value = "OFF"
            Else
                cell.Value = "ON"
            End If
        End If
    End Sub


#ただこれだと、ON、OFFの切替を文字列に依存してるのでアレかも。
#フラグのほうがいいですね。
悩める四十路男
会議室デビュー日: 2007/09/20
投稿数: 3
投稿日時: 2007-09-24 05:48
皆様、ご回答ありがとうございました。
よっし〜様のお答えの内容でうまくいきました。
CurrentCellのValueを使えばよかったんですね。

助かりました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)