我有一个数据网格,我用它来访问它的值,如:
userName = frm_main.datagrid1.Item(1, 0).Value.ToString
然而,这件事情很好,但现在我刚刚创建了一个新表单,当我尝试访问Item
datagrid1
的{{1}}属性时,它不可用。
有没有人有想法,这个问题是什么?
更准确地说,当我输入内容时,我会将frm_main
显示为高亮显示为class
的天蓝色。
答案 0 :(得分:1)
如果您尝试从其他表单访问frm_main,则必须有一个frm_main实例才能使用。没有现有的frm_main实例可以使用,就该表格而言,frm_main不存在。
我猜你是否正在从frm_main中的某个地方初始化第二个表单?如果是这样,当您初始化它时,请执行以下操作:
Form2 f = new Form2(this);
f.Show();
在Form2的代码中,输入:
private frm_main Main;
Public Form2(frm_main _Main) { Main = _Main; InitializeComponent(); }
这使得现有的frm_main实例能够使用并访问其中的所有控件。您只需将其称为Main,或者您希望在代码中为其提供的任何变量名称。
* 编辑: *我刚刚意识到这是针对VB.Net的,这个VB代码将是
Dim f As New Form2(Me)
f.Show()
然后为Form2
创建自己的构造函数Dim Main As Form1
Public Sub New(ByRef _Main As Form1)
Main = _Main
InitializeComponent()
End Sub
应该这样做!