值未出现在当前活动表格中

时间:2011-10-22 08:11:36

标签: vb.net visual-studio

使用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代码帮助

1 个答案:

答案 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的实例。 (请注意,我也为按钮单击事件代码更改了弹出窗体实例的名称)