使用VB.Net(Windows应用程序)
我有一个主要表单(数据输入表单),我在运行时创建了许多表单。
在运行时创建多个表单的代码。
按钮1单击
If IsNothing(frm) OrElse frm.IsDisposed Then
newfrm = New frmEntry
End If
newfrm.Show()
我有弹出窗口用于选择数据输入表单中的值。
从弹出窗口中选择值的代码
弹出窗口代码
If e.KeyCode = Keys.Enter Then
frmEntry.txtbox1.Text = gridview1.Rows(crRow).Cells("code").Value.ToString().Trim()
End If
上面的弹出窗口代码适用于数据输入表单,但它不适用于新表单(在运行时)
当我从弹出窗口中选择值时,它会出现在frmentry文本框中,而不是出现在newfrm文本框中。
弹出窗口选定值应以当前活动形式显示。
我的代码有什么问题。
需要VB.Net代码帮助
答案 0 :(得分:1)
如果您打开弹出窗口的表单是您需要更改值的内容,是否考虑在打开时将对开头表单的引用传递给弹出窗口?这样您就可以直接访问具有需要更新的控件的表单吗?
弹出窗口中的这个构造函数:
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
这是在runTime:
创建窗口时的形式If IsNothing(mEntryForm) OrElse mEntryForm.IsDisposed Then
mEntryForm= New frmEntry(me)
End If
mEntryForm.Show()
在数据表单类的顶层(创建弹出窗口的那个)
private mEntryForm as frmEntry
这将允许您从数据表单类的任何位置引用frmEntry的实例。 (请注意,我也为按钮单击事件代码更改了弹出窗体实例的名称)