【发布时间】:2021-02-22 04:19:46
【问题描述】:
我试图在单击按钮时触发此命令
Private Sub ClickDataGridview(sender As Object, e As DataGridViewCellMouseEventArgs)
If e.RowIndex >= 0 Then
Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
TextBox1.Text = row.Cells(0).Value.ToString
TextBox2.Text = row.Cells(1).Value.ToString
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
ClickDataGridview()
End Sub
但遗憾的是我收到了两个错误
- 未为“Private Sub ClickDataGridview(sender As Object, e As DataGridViewCellMouseEventArgs)”的参数“sender”指定参数。
- 未为“Private Sub ClickDataGridview(sender As Object, e As DataGridViewCellMouseEventArgs)”的参数“e”指定参数
我应该让它成为一个 if 语句才能工作吗?还是我应该尝试其他方法来触发此事件
【问题讨论】:
-
当你在
Button2_Click事件中调用ClickDataGridview()方法时……sender和e这两个参数在哪里?ClickDataGridview(sender As Object, e As DataGridViewCellMouseEventArgs)方法需要这两个参数,而代码没有将它们传递给方法,因此出现了两个错误。 -
我尝试执行此操作“ClickDataGridview(sender, e)”但我收到此错误“无法将“System.Windows.Forms.MouseEventArgs”类型的对象转换为“System.Windows.Forms”。 DataGridViewCellEventArgs'.'
-
当
Button2被点击并触发Button2_Click(sender As Object, e As EventArgs)事件时,EventArgs...e。 … 传递给事件。这与网格单元格单击事件参数DataGridViewCellMouseEventArgs不同。这就是您收到错误的原因。查看两个发布方法的签名......e参数是两种不同的类型。 -
您需要记住,当单击按钮时,它对网格“一无所知”。它可以获取有关网格的信息,例如选择了哪个单元格或多少行,但它不会知道刚刚单击了“哪个”单元格。如果这是您正在寻找的内容,那么您似乎需要订阅网格
CellMouseClick事件并运行您在该事件中拥有的代码,使用这种方法不需要按钮。 -
请提供对问题的完整和清晰的解释。你试图让一些代码工作并不是对问题的解释。为了知道工作代码会是什么样子,我们需要知道您实际想要实现的目标。不过你还没有解释。不要只描述手段并期望我们确定这些手段无法达到的目的。你需要自己描述实际的结局。基本上,不要指望我们从不做的代码中找出你想要做的事情。首先解释一下你为什么要写这段代码。
标签: vb.net