【问题标题】:Datagridview pop up弹出数据网格视图
【发布时间】:2017-04-29 03:26:29
【问题描述】:

我是 VB 和 .NET 的新手,我试图在用户双击数据网格时显示一个消息框,以显示选定的数据。

通常我可以将 Windows 控件中的 MessageBox("Hello") 与按钮单击事件一起使用。

但是当我从 datagridview 的双击事件中输入 MessageBox("Hello") 时,我得到一个编译错误

'MessageBox'是类类型,不能作为表达式使用。

我还尝试在 Visual Studio 上创建第二个空白表单,在我输入的按钮单击事件上:Form2.Show(),我在 datagridview 双击事件上做了同样的事情。 当我点击按钮 Form2 时显示,但当我双击 datagridview 时,Form2 不显示。

datagridview 控件的行为与其他窗口控件不同的任何原因?,当用户双击 datagridview 时,显示弹出窗口或显示第二个窗体的最佳和最简单的方法是什么?

我想要做的是当用户双击datagridview时,我想创建一个弹出表单,并在弹出表单上从选定的datagridview行中填写一些数据。


我不知道如何回复 Alex 的建议,我尝试添加评论,但它说超过 125 个字符,我找不到回复帖子的按钮,所以我把它放在这里。 (让我知道是否有更好的方法来做到这一点,而不是继续添加我的问题)。

嗨,亚历克斯,

这是我在 form1 类上的代码,form2 类只是一个简单的空白表单,我只是从 Visual Studio 中创建添加新表单右键单击添加表单。 单击按钮form2弹出然后我关闭它Form2,然后双击datagridview单元格,没有任何反应,我单击按钮form2弹出。

谢谢。

公开课表1 Private Sub Form1_Load(sender As Object, e As EventArgs) 处理 MyBase.Load 'TODO:这行代码将数据加载到'TestDB1DataSet.t_emp'表中。您可以根据需要移动或移除它。 Me.T_empTableAdapter.Fill(Me.TestDB1DataSet.t_emp)

End Sub

Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    ' put some code here
    Form2.Show()
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Form2.Show()

End Sub

结束类

【问题讨论】:

  • 你能发布一些你在做什么的例子吗?
  • MessageBox is 是一种类型。使用.Show() 方法:MessageBox.Show(...)
  • 改用MsgBox("Hello")
  • 一个非常晚的回复,可能为时已晚......但我无法理解你在那次编辑中所说的 - 问题解决了还是仍然存在?不过我认为这并不重要。

标签: .net vb.net winforms datagridview


【解决方案1】:

这些很容易犯错误:

  1. MessageBox("Hello") 应该是 MessageBox.Show("Hello") - 就这么简单。 MessageBox 是一个类型; Show 是你调用的方法。

  2. 我相信,datagridview 上的双击事件不起作用的原因是您需要检查他们是否单击了单元格以及检查他们是否双击了灰色它的区域(这就是双击方法的作用!)所以在这里使用这个代码 - 一定要把Handles之后的部分中的'Datagridview1'替换为DataGridView的名称:

    Private Sub DataGridView1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDoubleClick
        DoubleClickDataGrid()
    End Sub
    
    Private Sub TYPEANYNAMEHERE(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick
    DoubleClickDataGrid()
    End Sub
    
    Sub DoubleClickDataGrid()
        ' Type the code here
    End Sub
    

双击时您希望它执行的任何代码都会转到“在此处键入代码”的位置

(例如:Form2.ShowMessageBox.Show("Hello")) 等。

【讨论】:

  • 您在回答中提到OP应该使用MessageBox.Show,但您的代码使用MsgBox;请保持一致或解释MsgBox是什么以及您使用它的原因。
  • 非常抱歉,这是一个错误 - 我现在已经对其进行了编辑,我会确保不再发生这种情况。
猜你喜欢
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多