winform 一个窗体控制另一个窗体控件状态

taxueliuhen 2012-11-10 11:34:30
我有两个窗体,一个主窗体Main,上面有三个button,其中两个默认enable为false是不好用的,还有一个login,点击login弹出登录窗体,完成登录后我想在登录窗体中控制主窗体,让两个默认enable的button为true,不知道各位明白了米?
...全文
546 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
h303411163 2012-11-13
  • 打赏
  • 举报
回复
引用 17 楼 h303411163 的回复:
类似这种。 http://www.aiiq.net/?p=1404
http://www.aiiq.net/?p=1404
h303411163 2012-11-13
  • 打赏
  • 举报
回复
类似这种。 http://www.aiiq.net/?p=1404
shaoming01 2012-11-13
  • 打赏
  • 举报
回复
在登录窗体中创建一个单独的消息事件,然后在主窗体内响应这个事件就OK了。
zhuli466676197 2012-11-13
  • 打赏
  • 举报
回复
把Main传给登录窗体,并把默认的两个button的Modeifiers属性改成public,这样就可在登录窗体中控制着这两个button了
sanweixianshi 2012-11-12
  • 打赏
  • 举报
回复
如果登录完毕后,登录窗口关闭的话,一楼的方法应该是可以的啊!
noaskme 2012-11-12
  • 打赏
  • 举报
回复
给主窗体定义个进行enable的改变的函数,定义为子窗体中的事件即可 子窗体中定义委托 public delegate void dgShowStatus(int Max, int Value);//定义委托 public dgShowStatus ShowStatus;//定义委托实现类 子窗体中调用 ShowStatus(m_intMaxMum, 10000); 主窗体中调用子窗体时使用以下方式: frmEnergyUseTaizhang frm = new frmEnergyUseTaizhang(); frm.MdiParent = this; frm.ShowStatus += new frmEnergyUseTaizhang.dgShowStatus(ShowProcessBar); frm.Show(); ShowProcessBar为主窗体中的函数 public void ShowProcessBar(int Max, int intInteral) { }
taxueliuhen 2012-11-10
  • 打赏
  • 举报
回复
引用 4 楼 lyq8376 的回复:
可以在登录窗体中用(Main)this.Owner获取主窗体
能详细点吗?本人菜鸟
  • 打赏
  • 举报
回复
可以在登录窗体中用(Main)this.Owner获取主窗体
taxueliuhen 2012-11-10
  • 打赏
  • 举报
回复
引用 1 楼 devmiao 的回复:
if (loginForm.ShowDialog() == DialogResult.OK) { btnXXX.Enabled = true; }
这个写在哪?
taxueliuhen 2012-11-10
  • 打赏
  • 举报
回复
引用 1 楼 devmiao 的回复:
if (loginForm.ShowDialog() == DialogResult.OK) { btnXXX.Enabled = true; }
我在loginForm里取不到主界面的控件哇
devmiao 2012-11-10
  • 打赏
  • 举报
回复
if (loginForm.ShowDialog() == DialogResult.OK) { btnXXX.Enabled = true; }
  • 打赏
  • 举报
回复
引用 4 楼 lyq8376 的回复:
可以在登录窗体中用(Main)this.Owner获取主窗体
补充下,这个用法只有当主窗体是登录窗体的父窗体时才有效。 如果不是,还有一种方法,就是在登录窗体的构造函数中将主窗体的对象作为参数进行传递
w199096zx 2012-11-10
  • 打赏
  • 举报
回复
在main定义一个全局变量,login登录成功就给全局变量赋一值。然后用一个time控件一直检测这个全局变量的值,他变了就让button的的属性改的可现实的。或者下载button事件中检查全局变量的值改变没有。
事理 2012-11-10
  • 打赏
  • 举报
回复
主窗体Main中需要在login窗体控制的控件Modifiers属性为public 在登录窗口中 Main main=new Main(); main.Button1.Enable=false; main.Button2.Enable=true; main.ShowDialog(); 或 Application.Run(main);
helloworldysn 2012-11-10
  • 打赏
  • 举报
回复
可以把代码写在主窗体里,通过得到login 窗体的对象中的要得到的状态来控制
风之影子 2012-11-10
  • 打赏
  • 举报
回复
通过委托来操作。
devmiao 2012-11-10
  • 打赏
  • 举报
回复
写在主窗口中。

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧