在c#中怎么能在一个窗口中设置另一个窗口控件的属性?急急急!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c#中怎么能在一个窗口中设置另一个窗口控件的属性?急急急!!!相关的知识,希望对你有一定的参考价值。

现在的问题是,我有两个窗体,一个main窗体,一个login窗体:login窗体中设置main窗体中的菜单控件menustrip的enable 属性为false
我该怎么做???急急急...
最好有示范代码。。。本人菜鸟。。。。谢谢啊..

1、设置menustrip的Modifiers属性为非private,一般不建议这样做;
2、用构造函数,例如在login窗体中:
Menustrip menu1=new Menustrip();
public loginfrm(Menustrip menu2)

InitializeComponent();
menu1=menu2;

3、用委托
main窗体中:
public bool menuEnable

getreturn menustrip.enable;
set(menustrip.enable=value;)

login窗体中:
mainfrm.menuEnable=false;追问

你这123写的是步骤还是有三种方法啊?我没看懂唉...能再详细一点吗?

参考技术A 穿窗体的静态变量。。。。。类似于单例模式。。。。 public static Main _cmain=null;//窗体初始化的时候 进行new下。。。然后 其他窗体通过引用可以达到效果。。LZ可以试试看。。或者自己google相关信息 做个提示!! 参考技术B 这个问题我也遇到过,如果用Fr2控制Form1中的窗体控件,可以在Fr2的事件中编写Form1 frm1 = (Form1 )this.Owner; 语句,这样就可以用frm1对象控制Form1中的控件了.追问

用了你的想法,可是不行啊,它报 System.NullReferenceException异常啊

追答

这个异常貌似是你缺少对所修改窗体的引用啊!你添加using form1试试,这里的form1依照你程序而定。

参考技术C private MainForm m_data = null;
private void readdata_Load(object sender, EventArgs e)

m_data = new MainForm();
m_data.browseControl.Enabled = false;
参考技术D 传引用,学过么追问

能不能详细点呢?我菜鸟一个啊

追答

传参数会不?

追问

传参数会啊...能不能把详细步骤写一下啊...这个我有点晕

追答

你在本窗体会操作吧?this.控件.属性=值,你把这个this传到另一个窗体不就行了么,我手机上的没办法发代码

追问

用过了,但是他报空引用异常啊,为什么啊

追答

发你QQ,我给你发个项目

追问

980463316,谢谢啊..

以上是关于在c#中怎么能在一个窗口中设置另一个窗口控件的属性?急急急!!!的主要内容,如果未能解决你的问题,请参考以下文章

c#如何从另一个窗口中更改主窗口控件的属性

C#里面,子窗口关闭以后,刷新一个父窗口的控件的属性,怎么办

C#,reportviewer控件,怎么填充整个窗口

C#程序嵌入Word窗口

在C#中怎么样在一个文本框调用另一个窗口的文本框

如何在c#中设置另一个应用程序的优先级