Kos*_*tas 6 .net vb.net datagridview winforms
我有一个关于DataGridView.NET 中的控制的问题。
我DataGridView从工具箱中插入了一个,并将其与我在 Access 中设置的数据库连接起来。然后我添加了一列,其中包含任务面板编辑列中的按钮DataGridView。
按钮的点击事件DataGridView工作没有问题!
DataGridView当我单击DataGridView. 我该怎么做?
DataGridView的代码是:
Private Sub dgvAnimSel_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) _
Handles dgvAnimSel.CellContentClick
Dim V As String = dgvAnimSel.Rows(e.RowIndex).Cells(0).Value
If e.ColumnIndex = 3 Then
If V = 1 Then
If A1 = 1 Then
'this is the uncheck state
Me.dgvAnimSel.CurrentCell.Style.BackColor = Color.White
Me.dgvAnimSel.CurrentCell.Style.ForeColor = Color.Black
Me.dgvAnimSel.CurrentCell.Value = "Select"
ItemTextNew = ItemTextOr + "1"
ItemName = ListView1.FindItemWithText(ItemTextNew, False, 0, True)
ListView1.Items.Remove(ItemName)
A1 = 0
Else
'this is the check state
Me.dgvAnimSel.CurrentCell.Style.BackColor = Color.Green
Me.dgvAnimSel.CurrentCell.Style.ForeColor = Color.White
Me.dgvAnimSel.CurrentCell.Value = "Selected"
a = ListView1.Items.Add(" " + "Animation 1 ", 0)
A1 = 1
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
先感谢您!
您可以使用以下任一选项:
CellContentClick,像普通方法一样调用DataGridViewCellEventArgs事件处理程序。CellContentClick按钮DataGridView或Click按钮调用该方法。示例 1 - 通过调用事件处理程序执行 DataGridView 按钮单元格的单击
要以编程方式单击特定行中的按钮,您可以CellContentClick使用合适的DataGridViewCellEventArgsase和您的DataGridViewas来调用您创建为事件的事件处理程序的方法sender:
Private Sub AnotherButton_Click(sender As Object, e As EventArgs) _
Handles AnotherButton.Click
' zero based ColumnIndex of your button column= 3 (for example)
' zero based RowIndex that you want to click on its button column = 2 (for example)
Dim arg = New DataGridViewCellEventArgs(3, 2)
DataGridView1_CellContentClick(DataGridView1, arg)
End Sub
Private Sub DataGridView1_CellContentClick(sender As Object, _
e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
MessageBox.Show(e.RowIndex.ToString())
End Sub
Run Code Online (Sandbox Code Playgroud)
示例 2 - 将逻辑放入另一个方法中并在需要时调用该方法
作为另一个选项,您可以将与单击单元格按钮相关的逻辑放在方法中,依赖于Cell和Row对象,并且仅将合适的值传递给该方法。然后你可以在任何需要的地方调用该方法。
Private Sub DoSomething(rowIndex as Integer, columnIndex as Integer)
MessageBox.Show(rowIndex.ToString())
End Sub
Private Sub AnotherButton_Click(sender As Object, e As EventArgs) _
Handles AnotherButton.Click
' zero based ColumnIndex of your button column= 3 (for example)
' zero based RowIndex that you want to click on its button column = 2 (for example)
DoSomething(2, 3)
End Sub
Private Sub DataGridView1_CellContentClick(sender As Object, _
e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
DoSomething(e.RowIndex, e.ColumnIndex)
End Sub
Run Code Online (Sandbox Code Playgroud)
示例 1 - 通过调用事件处理程序执行 DataGridView 按钮单元格的单击
要以编程方式单击特定行中的按钮,您可以CellContentClick使用合适的DataGridViewCellEventArgsase和您的DataGridViewas来调用您创建为事件的事件处理程序的方法sender:
private void anotherButton_Click(object sender, EventArgs e)
{
' zero based ColumnIndex of your button column= 3 (for example)
' zero based RowIndex that you want to click on its button column = 2 (for example)
var arg = new DataGridViewCellEventArgs(3, 2);
dataGridView1_CellContentClick(dataGridView1, arg);
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.RowIndex.ToString());
}
Run Code Online (Sandbox Code Playgroud)
示例 2 - 将逻辑放入另一个方法中并在需要时调用该方法
作为另一个选项,您可以将与单击单元格按钮相关的逻辑放在方法中,依赖于Cell和Row对象,并且仅将合适的值传递给该方法。然后你可以在任何需要的地方调用该方法。
private void DoSomething(int rowIndex, int columnIndex)
{
MessageBox.Show(rowIndex.ToString());
}
private void anotherButton_Click(object sender, EventArgs e)
{
' zero based ColumnIndex of your button column= 3 (for example)
' zero based RowIndex that you want to click on its button column = 2 (for example)
DoSomething(2, 3);
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
DoSomething(e.RowIndex, e.ColumnIndex);
}
Run Code Online (Sandbox Code Playgroud)