更改datagridview vb.net中的按钮列文本

更改datagridview vb.net中的按钮列文本,vb.net,winforms,Vb.net,Winforms,我有一个DatagridView和一个buttoncolumn 我试图用这段代码更改按钮上的文本(不是标题文本),但不起作用,有其他方法更改文本吗 DataGridView1.Rows(e.RowIndex).Cells(1).Value = "BUTTON TEXT" also tried: Column1.text= "BUTTON TEXT" but with this all the rows share the same text 我希望有多行,每行有多个按钮和不同的文本 Exa

我有一个DatagridView和一个buttoncolumn

我试图用这段代码更改按钮上的文本(不是标题文本),但不起作用,有其他方法更改文本吗

DataGridView1.Rows(e.RowIndex).Cells(1).Value = "BUTTON TEXT"

also tried:

Column1.text= "BUTTON TEXT" but with this all the rows share the same text
我希望有多行,每行有多个按钮和不同的文本

Example:

"Button1"
"Button2"
"Button3"

我认为可以在添加新行时设置新行的文本,但我无法在测试中很好地处理数据输入行,即使在处理
行unshared
时也是如此。相反,我尝试了在所有行中循环,并为所有行设置文本,但数据输入行除外,这很好:

Private Sub DataGridView1_RowsAdded(sender As Object, e As DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded
    Dim rowNumber = 1

    For Each row As DataGridViewRow In DataGridView1.Rows
        If row.IsNewRow Then
            Exit For
        End If

        row.Cells(ButtonColumn.Name).Value = $"Button{rowNumber}"
        rowNumber += 1
    Next
End Sub

如果您使用的是
e.RowIndex
,则必须将该代码放在网格事件的处理程序中。哪个项目?您需要确保在希望显示文本时执行设置文本的代码。
RowsAdded
事件似乎是执行此操作的合理场所。这将为您提供添加的第一行的索引和行数,因此您可以使用
For
循环访问网格
集合中的每一行,循环计数器可用于按行号设置文本。另一种可能是处理
DataGridView1.RowPostPaint
事件,您只需:
DataGridView1(DataGridView1.Columns(“ButtonColumn”).Index,e.RowIndex).Value=“Button”和(e.RowIndex+1).ToString()
,因此您不需要同时处理
RowsRemoved
来重新计算按钮值。