C# winform 父窗口子窗口按钮控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform 父窗口子窗口按钮控制相关的知识,希望对你有一定的参考价值。

首先,父窗口有按钮调出不同的子窗口,没子窗口中有“修改”“保存”按钮,当点击“修改”后,父窗口中所有关于打开子窗口的按钮的值全部变为fasle。之后点击“保存”按钮,父窗口的按钮值又全部变为true。求解决办法。需要添加什么事件,和代码?

在父窗体内中添加一全局方法,查找到你要禁用的按钮,设置为不可用;
在子窗体的修改按钮中调用这一方法;

话说有必要吗?直接将子窗体打开为模式窗体,只能操作当前子窗体,在子窗体没关闭前不能操作父窗体不简单些吗?追问

因为设定是只要没点击“修改”,就仍然可以操作父窗口。

追答

那就是前面说的,定义一个全局的方法,再调用,或者把父窗体中打开子窗体的按钮设为全局的,在子窗体中操作它

追问

冒昧的问一下,这个全局方法该怎么写。。。。 没用过 举个例子也可以

追答

假设你的父窗口叫frmMain,添加方法:
public static void SettingButton()

foreach(Control control in Controls) //这里你自己改下,在哪个范围内查找

if(control is Button) //如果是按钮,就禁用它
control.Enable=false;


在子窗体按钮事件中调用:
frmMian.SettingButton();
基本就是这样,手打未验证过,细节你自己改下

参考技术A 在子窗体中修改的事件中,加上 如:buttion pass= 子窗体.FindControl("父窗体中buttion控件名"); pass.visible=fasle; 追问

错误 1 “WindowsApplication6.Form2”并不包含“FindControl”的定义
求解决方法

winform子窗口与父窗口的交互-使用委托与事件

实现子窗口与父窗口的交互,通过父窗口调用并控制子窗口,子窗口也能控制父窗口,使用委托和事件的方法,可以实现。

1.父窗口调用子窗口,并通过子窗口控制父窗口

新建工程,创建两个窗体

技术图片   技术图片

显示子窗体的代码:

技术图片

子窗体定义事件,父窗体订阅事件(通过子窗体修改父窗体)

技术图片    技术图片

2.通过子窗体控制父窗体

父窗体定义事件,子窗体订阅事件(通过父窗体修改子窗体)

技术图片   技术图片

 

 3.最终结果

 

技术图片

 

技术图片

 

4.完整代码

form1.cs

技术图片

 

form2.cs

技术图片

 

以上是关于C# winform 父窗口子窗口按钮控制的主要内容,如果未能解决你的问题,请参考以下文章

winform子窗口与父窗口的交互-使用委托与事件

如何在vs 2005 中将mdi父窗口分割成两部分,一边treeview,一边显示子窗口(c# winform)

请问用C#编写的MDI程序,为啥我从父窗口通过按钮打开子窗口时,父窗口的按钮会在子窗口中显示?

C# winform怎么实现子窗体关闭时刷新父窗体数据

c# winform程序,判断是不是打开同一个窗口的问题。

c# 子窗口如何将信息传至父窗口