值没有出现在当前活动窗体
问题描述:
使用VB.Net(Windows应用程序)值没有出现在当前活动窗体
我有一个主要的形式(数据输入表单),我创建在运行时的许多形式。
在运行时创建多个表单的代码。
Button1的单击
If IsNothing(frm) OrElse frm.IsDisposed Then
newfrm = New frmEntry
End If
newfrm.Show()
我有弹出窗口的selcting在数据输入表单的值。
代码selcting从弹出窗口
弹出窗口代码
If e.KeyCode = Keys.Enter Then
frmEntry.txtbox1.Text = gridview1.Rows(crRow).Cells("code").Value.ToString().Trim()
End If
上方的弹出式窗口代码正在为数据输入表单的价值,但它不工作的新形式(在运行时)
当我从弹出窗口中选择值意味着它出现在frmentry文本框中,而不是在newfrm文本框中。
弹出窗口选定值应显示在当前活动窗体中。
我的代码有什么问题。
需要VB.Net代码帮助
答
如果从打开弹出式的形式是你所需要的改变价值观,你认为是传递一个参考开放的形式弹出,当你打开它?所以你可以直接访问需要更新的控件的表单?
此构造在弹出的窗口:
Private mOpeningForm As frmEntry
Public Sub New(OpeningForm As frmEntry)
InitializeComponent()
mOpeningForm = OpeningForm
End Sub
此修改为使用参考发送到弹出的形式的形式:
If e.KeyCode = Keys.Enter Then
mOpeningForm.txtbox1.Text = gridview1.Rows(crRow).Cells("code").Value.ToString().Trim()
End If
这在窗体被创建的窗口时运行时间:
If IsNothing(mEntryForm) OrElse mEntryForm.IsDisposed Then
mEntryForm= New frmEntry(me)
End If
mEntryForm.Show()
在数据表单类(创建弹出窗口的顶层)
private mEntryForm as frmEntry
这将允许您从数据表单类中的任何位置引用frmEntry的实例。 (请注意,我更改了弹出式窗体实例的名称以获取按钮单击事件代码)
这往往会导致NullReferenceException异常。 OP使用frmEntry的原因。 –
我想我认为他创建的表单实例仍然在范围之内。当然,如果不是它会生成空引用......我以为他OP忽略了他使用类型名称而不是表单名称。 – Jay
原来,代码是另一种形式,他留下了对我的答案的评论。 –