VB6中父对话框的访问控制

VB6中父对话框的访问控制,vb6,controls,parent-child,Vb6,Controls,Parent Child,我在vb6中有一个对话框,可以更改父对话框中显示的值 x1显示在父对话框中的txt_c1文本中,它还具有文本框的txt_1validate功能。现在我想更改子对话框中txt_c1 txtbox的值,然后调用其验证函数。但问题是txt_c1在子对话框中不可用 请注意,我在MS VB 6.0 IDE中使用vb6,表单只是类,因此可以明确地实例化(如果您这样做而不是在vb6中使用自动实例化,您可能会发现您的生活更轻松),并且可以指定对表单的引用 您可以通过在子对话框(Form1.frm)上创建一个Fo

我在vb6中有一个对话框,可以更改父对话框中显示的值

x1显示在父对话框中的txt_c1文本中,它还具有文本框的txt_1validate功能。现在我想更改子对话框中txt_c1 txtbox的值,然后调用其验证函数。但问题是txt_c1在子对话框中不可用


请注意,我在MS VB 6.0 IDE中使用vb6,表单只是类,因此可以明确地实例化(如果您这样做而不是在vb6中使用自动实例化,您可能会发现您的生活更轻松),并且可以指定对表单的引用

您可以通过在子对话框(Form1.frm)上创建一个Form类型的公共属性来解决问题,该属性设置为父对话框的实例,从而允许您从子对话框访问父对话框上的控件和D方法

我的VB6有些生疏(而且我没有可用的已安装实例),因此这不是实际的、正确的代码——但是按照下面的思路应该可以工作

在调用子级的代码中:

Form childDialog = new Form1
childDialog.Parent = this
childDialog.ShowModal
然后在子对话框中:

Parent.txt_c1 = newValue
if not Parent.Validate then
...
end if

请你发布一些代码来说明你的意思好吗?main.frm是我的主对话框,它包含一个文本框txc1,主窗体上的一个按钮打开Form1.frm。现在,当用户按下Form1上的按钮时,txc1文本框的值应该改变,并且应该调用其validate方法,但是txc1在from1.frmOkay中不可用-但是我认为我们需要查看实际代码。例如,调用子窗体和验证事件的代码块。如果看不到您是如何调用表单的,就很难理解为什么您无法访问父级。在VB6上尝试得不错,我猜您已经迁移到C#?我想你的意思是像
Dim childDialog As Form1:Set childDialog=New Form1:Set childDialog.Parent=Me:childDialog.Parent.Show vbModal
然后
Parent.txt\u c1.Text=newValue:If Not Parent.Validate then
我还想jaminator可能需要做
txt\u 1validate
PublicMurph谢谢你的帮助回答,我的chilad对话框名为attachmentsFrm,当我尝试执行Form instance=New attachmentsFrm时,它会给出error@MarkJ是的-从我做VB.OLD到现在大概有8年了。