社区
C#
帖子详情
子窗口如何调用父窗口的函数和成员?
upc_linshi
2010-11-12 10:00:48
form1是父窗口,通过
Form2 f2 = new Form2();
f2.ShowDialog();
产生form2,
如何在form2的窗口处理函数中使用form1的资源呢?我用的是vs2005,c#的方案
...全文
862
9
打赏
收藏
子窗口如何调用父窗口的函数和成员?
form1是父窗口,通过 Form2 f2 = new Form2(); f2.ShowDialog(); 产生form2, 如何在form2的窗口处理函数中使用form1的资源呢?我用的是vs2005,c#的方案
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
upc_linshi
2010-11-16
打赏
举报
回复
我总结一下吧
如果要在两个不同的类之间调用,那么首先得在类的成员函数中获得目标类的对象,在自动建立的程序框架里是没有Form1的对象的,它的对象隐匿了(application.run(new Form1()))
因此要在Form2中获得Form1的对象,有两种方法
1,在解决方案的类中,最大的那个类中声明Form1的对象,Form1 form1,在运行时,form1=new Form1()
application.run(form1);
2,在运行其他的窗体的时候,比如运行Form2,给From2添加一个变量Form1 f1;把Form2的构造函数改为
Form2(Form1 f1)
{this.f1=f1};
在Form1中生成Form2的时候,Form2=new Form2(this);这样就把Form1的对象this传给了Form2,Form2就可以获得Form1的对象了
upc_linshi
2010-11-13
打赏
举报
回复
能不能给出parent的一些方法啊?我就是函数名称不知道怎么查?给个链接参考一下,谢谢
upc_linshi
2010-11-13
打赏
举报
回复
3楼说的对吗?
f2.Form_1 = this;
这里的this不是form2吗
Ann725
2010-11-13
打赏
举报
回复
这两个窗体是两个不同的类,这就涉及数据传递的问题,可以用委托
quifar123
2010-11-12
打赏
举报
回复
在form1 定义要用的字段如:string a;在form2定义public b的字段接受,
在form1的事件中:form2 f=new form2();
f.b=a;
f.show();//or f.ShowDialog();
兔子-顾问
2010-11-12
打赏
举报
回复
看你如何设置的子窗体和父窗体了。如果是this.Controls.Add添加的,你可以通过Parent转换为父窗体类型:
(Parent as Form1).访问父窗体对象
如果是彼此不想干的,设置了Owner,则可以靠这个变量转换类型访问。
如果是Mdi。可以用MdiParent访问。
hch126163
2010-11-12
打赏
举报
回复
form2 中
public form1 Form_1;
Form2 f2 = new Form2();
f2.Form_1 = this;
f2.ShowDialog();
这样就可以在form2 中访问 form1 的公共属性和方法
int64
2010-11-12
打赏
举报
回复
简单的可以用全局变量实现
laj0600310219
2010-11-12
打赏
举报
回复
蛮多方法的啊,你可以使用传参的形式,也可以使用public变量的形式,还可以使用委托的形式。。。等等。。
在
子
窗口
中
调用
父
窗口
的
成员
函数
的实例
在
子
窗口
中
调用
父
窗口
的
成员
函数
的方法 1、用FindWindow("类名(可以是派生类)","
窗口
标题")或GetParent(),二者均能返回
父
窗口
句柄,并能直接使用其
成员
函数
。但是此法只能
调用
CWnd类里的
成员
函数
,而不能
调用
自己创建的派生类中的
函数
。 2、在
子
窗口
的初始化
函数
里加上
父
窗口
的指针 ,然后在
子
窗口
的类中使用全局变量保存
父
窗口
的指针。如:
父
窗口
类为CMyDlg(
父
类为CDialog),
子
窗口
类为CMySon(
父
类为CDialog),则在CMyDlg::OnInitDialog()中初始化
子
窗口
对象m_myson=new CMySon(this);(m_myson为在
父
窗口
中声明的
成员
),然后在MySon.cpp中的开始处声明全局变量CMyDlg *parent;(在MySon.h中要加入MyDlg.h头文件),最后在CMySon的构造
函数
中定义parent=(CMyDlg*)pParent; 好了,现在你可以在
子
窗口
中随时
调用
父
窗口
函数
了!
MFC中
子
窗口
调用
父
窗口
指针(
子
类
调用
父
类)教程——100%实现
最近在写一个MFC程序,其中遇到了
子
窗口
调用
父
窗口
指针的问题,具体解决过程如下:一、创建
子
窗口
(这里就不详细说了,可以自己百度,网上有相关的教程)二、
子
窗口
调用
父
窗口
指针的
函数
代码CMFCDlg *pDlg = (CMFCDlg*)this->GetParent();m_DeviceCurSel = pDlg->m_nDeviceCurSel;注:工程说明,我的工程是
调用
相机的参数并对...
qt
子
窗口
调用
父
窗口
的
函数
Father.h #ifndef FATHER_H #define FATHER_H #include #include "ui_Father.h" #include "Son.h" class Father : public QMainWindow { Q_OBJECT public: Father(QWidget *parent = 0, Qt::WFlags flags =
vc
子
窗口
怎么
调用
父
窗口
的
函数
和变量?
1. 首先要在
父
窗口
中定义成public的变量与
函数
2. 通过指针指向
父
窗口
3. 再进行
调用
.
如CxxxDlg *pDlg=(CxxxDlg *)AfxGetMainWnd();或
CxxxDlg *pDlg=(CxxxDlg *)myDlg.GetParent();
都行, 然后使用pDlg->myVar pDlg->DoFun()
MFC中
子
窗口
调用
父
窗口
资源的方法
在MFC中经常需要在一个
窗口
中弹出另一个
窗口
,比如在文档视图主
窗口
中弹出一个对话框进行信息交互。 这种情况在实现中,一般
父
窗口
的类
成员
中有一个
子
窗口
类的对象指针。比如在需要弹出对话框时候,可以利用DoMadol
函数
弹出对话框。但是如果在
子
窗口
中需要对
父
窗口
进行操作,需要怎么做呢。 实例:在文档视图的
父
窗口
中弹出一个非模态的
子
对话框,在改对话框中操作,可以实时改变
父
窗口
中的显示。 步骤和方法如下
C#
110,529
社区成员
642,571
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章