问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

您好,请问一下,C#子窗体如何访问从父窗体继承过来的控件?WinForm

发布网友 发布时间:2022-05-25 17:16

我来回答

4个回答

热心网友 时间:2023-11-24 03:43

这个是我找的资料,你看看能帮上你不、具体网址http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx

说明:Form1为主窗体,包含控件:文本框textBoxFrm1,多选框checkBoxFrm1和按钮buttonEdit;  

Form2为子窗体,包含控件:文本框textBoxFrm2,多选框checkBoxFrm2和按钮buttonOK,buttonCancel。

当我们新建一个窗体的时候,设计器会生成默认的构造函数:  

public Form2()  

{  

 InitializeComponent();  

}  

它不带参数,既然我们要把Form1中的一些数据传到Form2中去,为什么不在Form2的构造函数里做文章呢? 

假设我们要实现使Form2中的文本框显示Form1里textBoxFrm1的值,修改子窗体的构造函数:  

public Form2(string text)  

     InitializeComponent();  

     this.textBoxFrm2.Text = text;  

}  

增加Form1中的修改按钮点击事件,处理函数如下:  

private void buttonEdit_Click(object sender, System.EventArgs e) 

      Form2 formChild = new Form2(this.textBoxFrm1.Text);  

     formChild.Show();  } 

我们把this.textBoxFrm1.Text作为参数传到子窗体构造函数,以非模式方式打开,这样打开的formChild的文本框就显示了”主窗体”文本,是不是很简单,接下来我们传一个boolean数据给子窗体。 

Public Form2(string text,bool checkedValue)  

{  

     InitializeComponent();  

    this.textBoxFrm2.Text = text;  

     this.checkBoxFrm2.Checked = checkedValue;  

}  

在主窗体中的修改按钮点击处理,我采用了打开模式窗口的方式,其实在这个例子中看不出有什么分别, 

private void buttonEdit_Click(object sender, System.EventArgs e) 

{  

     Form2 formChild = new Form2(this.textBoxFrm1.Text,this.checkBoxFrm1.Checked);  

     formChild.ShowDialog();  

}  

结果在预料之中,但是这里明显存在不足,在子窗体里的数据修改后不能传给主窗体,也就是说主窗体不受子窗体的影响。而在实际的开发过程中我们经常使用子窗体来修改主窗体里面的数据,那怎么解决呢?  

在.NET中有两种类型,值类型和引用类型。值类型是从ValueType继承而来,而ValueType又是从Object继承;对于引用类型它直接继承Object类型。这下让我们看看怎样通过Form2来修改Form1里的数据。 

还是让我们来修改Form2的代码。 

Private TextBox textBoxFrm12; 

private CheckBox checkBoxFrm12;  

public Form2(TextBox heckbo,CheckBox heckbox)  

     InitializeComponent();  

     this.textBoxFrm2.Text = heckbo.Text;  

     this.checkBoxFrm2.Checked = heckbox.Checked;  

      this.textBoxFrm12 = heckbo;  

    this.checkBoxFrm12 = heckbox;  

}  

现在我们传了两个引用类型的数据:TextBox类型,和CheckBox;另外在Form2中增加了两个类数据成员textBoxFrm12、checkBoxFrm12用来分别保存构造函数传来的变量,不过他们并不属于Form2的Controls容器。修改Form2的确定按钮点击事件函数:  

private void buttonOK_Click(object sender, System.EventArgs e)  

{  

  this.textBoxFrm12.Text = this.textBoxFrm2.Text;  

     this.checkBoxFrm12.Checked = this.checkBoxFrm2.Checked;  

this.Close();  }  

上面的代码我们通过把textBoxFrm2的Text和checkBoxFrm2.Checked赋给textBoxFrm12和checkBoxFrm12完成了对主窗体中的textBoxFrm1和checkBoxFrm2的修改,因为textBoxFrm1和textBoxFrm12是同一个引用,而checkBoxFrm2和checkBoxFrm12也是。  

到这里为止功能是实现了,但是总觉得不是很合理,让两个窗体控件传来传去,现在我举一个恰当一点的例子。  

修改了两个窗体:

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx

热心网友 时间:2023-11-24 03:44

经过测试, 父窗体上控件的Modifiers属性,已经设置为protected后,在子窗体上支持代码修改.属性窗口为灰色,不能直接修改.

热心网友 时间:2023-11-24 03:44

如果可以修改父窗体,把父窗体里面的控件的可访问级别设为非private,如protected、internal、public等,则控件可以在子窗体中可以访问。否则,用运行时查找方式,如.Controls的方式或者是handle查找,找到相应控件进行操作。

热心网友 时间:2023-11-24 03:45

用子窗体对象点就可以访问父窗体继承过来的控件
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
推荐一款在卧室听的音响,最好带CD,带收音机,可插U盘,价格1000以内!尽量... 求问,近几年还会有类似于声之形、你的名字这样的动漫电影么w_百度... 苦学包括什么 北京世纪百奥科技有限公司怎么样? 居住证积分需要哪些材料 上海办居住证积分需要什么资料 居住证积分有哪些材料 如何建立良好的家庭情感氛围 如何让家庭氛围更快乐 如何营造一个欢乐轻松的家庭氛围呢? 联想主板SF1/648FX S648FXBO+S963LUAC1说明书 荣耀60在哪打开熄屏显示的啊? 荣耀60的手机在哪快速打开相机? 动画专业专升本考什么 吃什么能让头发变的又黑又亮 为什么贷款公司非要身份证跟银行卡? 没有身份证银行卡可以贷款吗 在线等 挺急的 没有身份证和银行卡能在网上贷款吗 不用传身份证和不要银行卡的贷款 肝右叶最大斜径怎么测量 肝右叶最大斜径约99mm肝脏体积稍偏小是什么情况 肝右叶最大斜径14.6cm,包膜光整,肝实质回... 肝切面形态正常,肝右叶斜径12.8cm,包膜欠光滑,过缘钝,实质回声增粗增强,分布 肝右叶斜径:12.0肝左叶前后径:6.1cm,形态规则,肝实质内部回声:欠均匀,管状结构欠清,回声 肝脏右叶斜径约为10.4cm,被膜光滑,实质回声增高,光点增多,回声欠均匀管腔结构显示清晰,门静脉 肝右叶最大斜径129mm。肝脏大小`形态正常,表面平滑,实质回声增粗,未见占位性病变。 肝右叶子斜径约16cm内探及多个不均质回声大的约12cm什么意思? 前后间隔两个半月,肝右叶斜径增大怎么回事 苏泊尔豆浆机密封条有毒吗 我的是强排式热水器万和牌我的浴室有排气扇有空气流通的但是我把热水器装在浴室里面可以吗? 谁能破解FC的访问密码 歌词有天南地北、海誓山盟 今天在街上听到的一首歌 应该是一首新歌,女生唱的,歌词里好像有 天 林俊杰有一首歌歌词 天南地北什么的 谁知道这首歌的名字啊?歌词里有"不管天南地北..."很RAP的风格 说一个我道一个的歌词 我们是商城平台,想要给入驻的商家提供物流查询、面单打印的服务,怎么对接? 你们做商城网站 站内查询物流信息 是怎么弄的? 开发,商城调用第三方物流接口,查看物流信息 快递100 如何将接口植入商城平台?最好有个案例 crm客户管理平台哪家好 crm管理平台哪家好用呢? 请问crm管理平台哪家好? 请问crm客户管理系统哪个比较好? 客户关系管理CRM软件哪个最好用? crm客户关系管理系统哪个好用? CRM客户关系管理软件哪个比较好? ipad软件可以下载到u盘吗 汽车涉水后没有熄火停了半天打不着火发动机故障灯闪烁怎么回事? 车辆涉水息火二次起动马达没反应,发动机故障灯亮怎么回事