A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 百川 中级黑马   /  2014-3-29 17:21  /  1130 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 百川 于 2014-3-29 22:07 编辑

如何在winform中改变一组按钮的状态?主窗体有三个按钮,分别是btncreate,btnshow,btndis。有一个共有的方法可以改变按钮的enable属性。如下:
  1. public void IsEnable(bool enable)
  2.         {
  3.             btncreate.Enabled = enable;
  4.             btnshow.Enabled = !enable;
  5.             btnDis.Enabled = !enable;
  6.         }
复制代码
现在通过构造函数将主窗体的引用传递给子窗体后,为什么调用不到这个公有的方法?如果想要调用的话该如何实现呢?



3 个回复

倒序浏览
你的构造函数将是怎么写的,假如子窗口是主窗口是使用ShowDialog(this)的方法显示出来的话可以在子窗口中要调用的地方将父窗口转换出来,再调用
  1.             Form1 父窗口 = this.Owner as Form1;
  2.             父窗口.abc(false);
复制代码
  1. public void abc(bool s)
  2.         {
  3.             button1.Enabled = s;// 父窗口里的方法
  4.         }
复制代码
回复 使用道具 举报
mdb 发表于 2014-3-29 18:17
你的构造函数将是怎么写的,假如子窗口是主窗口是使用ShowDialog(this)的方法显示出来的话可以在子窗口中要 ...

构造函数就是普通的
  1. public Form2(Form form)
  2.             : this()
  3.         {
  4.             this.form1 = form;
  5.         }
复制代码

其中form2是子窗体,form1是主窗体
回复 使用道具 举报
mdb 发表于 2014-3-29 18:17
你的构造函数将是怎么写的,假如子窗口是主窗口是使用ShowDialog(this)的方法显示出来的话可以在子窗口中要 ...

解决了,谢谢大神。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马