假设我有两种形式,即 Form1
和 Form2
. Form1包含动态创建的 DataGridView
控件, Form2
包含两个 Textbox
控件( Textbox1
和 Textbox2)
以及 Button
控件 .
当我在 DataGridView
的单元格上 DoubleClick
时,它将打开 Form2
并且当前所选单元格中的数据传递给 Form2
的 Textbox1
这是代码:
我为动态创建的DatagridView添加了一个句柄,如下所示:
AddHandler dg.CellMouseDoubleClick, AddressOf dg_DataGridEdit
Private Sub dg_DataGridEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs)
Dim dgView As DataGridView = DirectCast(sender, DataGridView)
Form2.TextBox1.Text = dgView.CurrentCell.Value.ToString()
Form2.ShowDialog()
End Sub
当我单击Form2中的按钮时,当前所选单元格的值将像Form2中的TextBox2一样改变 . 但问题是我无法使用From2中的button1代码
Form1.dgView.CurrentCell.Value = TextBox2.Text
如何将值从textbox2传递到当前选定的单元格?
5 回答
创建DataGridView时,请存储对它的引用:
然后添加一个ReadOnly属性以从其他地方获取对它的引用:
然后你可以在Form2中执行此操作:
我不会使用默认实例 . 以下是在每个表单上使用文本框的示例:
form1中
窗口2
对form2上文本框的任何更改都将反映在form1上的文本框中 .
尝试复制到剪贴板作为解决方法,因此您不必将文本从一个方法传递到下一个方法
好,我知道了 . 起初我创建了一个名为的公共变量
然后改变代码 -
在form2中
您可以将
Form1
的datagridview传递给Form2
,通过Form2
's constructor. Then you' ll能够访问Form1
的datagridview的CurrentCell
,就像您的上一个代码段一样 .你可以在
Form2
中有一个构造函数,它将datagridview作为参数 .在
Form1
中创建Form2
的实例时,将dgView传递给Form2,如:现在,当您单击
Form2
中的按钮时,只需在按钮事件处理程序中设置dgView的CurrentCell
,如: