首页 新闻 会员 周边 捐助

C# 界面用show()方法,如何在界面显示时,对界面进行操作?

0
悬赏园豆:5 [已解决问题] 解决于 2014-05-09 09:26

 程序中,有多个界面,我是用触发事件来调用界面显示的(在主界面上的panel上),用的是show()显示。问题来了,我在后一个子界面操作完成后,需要将某些值传给前一个在主界面上显示的子界面。这时,这个前子界面会直接显示出来,不用经过load事件,也不用经过actived事件。有什么办法能对这个界面在显示之前进行一些操作吗?比如初始化,比如传值等。

c#
龙泽清的主页 龙泽清 | 初学一级 | 园豆:172
提问于:2014-05-08 10:32
< >
分享
最佳答案
1

Form frm = new Form();

frm.你需要的值 = xxx;//你需要的值 可以是那个子窗体的一个属性。

frm.Show();

收获园豆:4
刘宏玺 | 专家六级 |园豆:14020 | 2014-05-08 10:41

new一个新实例的话,这个窗口在前面定义的触发事件就会为空,窗口就不能再调用了。

龙泽清 | 园豆:172 (初学一级) | 2014-05-08 10:47

@龙泽清: Form1_Enter事件??是这个意思不?

或者是你的panel的 Enter事件??

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-08 10:52

@博客¥:非常感谢,你说的Form1_Enter事件的思路就是我要问的意思。 Form1_Enter事件确实是可以在子窗口由隐藏到显示之后触发,但是,这个事件是在我这个子窗口显示出来之后,并且在窗口上开始操作之前触发的。比如点击窗口或者是点击窗口中的控件。能不能在我这个窗口显示之前,完成我对这个窗口的操作。

龙泽清 | 园豆:172 (初学一级) | 2014-05-08 11:06

@龙泽清: 那 actived 为啥不能用呢? 你可以给他们绑定多个事件啊

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-08 12:38

@博客¥: 我先前也是以为actived事件可以用的,但是返回前一界面的时候,不会触发 actived事件····

龙泽清 | 园豆:172 (初学一级) | 2014-05-08 16:01

@博客¥: 虽然问题没有完全解决,不过至少有了思路。谢谢啊。

龙泽清 | 园豆:172 (初学一级) | 2014-05-09 09:25

@龙泽清: 客气了!

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-09 09:26

@龙泽清: 其实我想到的个很笨的方法,你在设置一组全局变量,里面就存你的所有窗体的引用,你想改变哪个参数就可以很方便的改变了!

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-09 09:28

@博客¥: 窗体有点多 都存为全局变量有点不现实。

龙泽清 | 园豆:172 (初学一级) | 2014-05-09 09:35

@龙泽清: 那就抽象一个接口出来,你的所有窗体都实现这个窗体,把所有的窗体放在一个集合里面,显示的时候就调用那个接口的方法

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-09 09:38
其他回答(3)
0

定义一个方法初始化方法,在show前调用一下

吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-08 10:40

在show()这个事件我是写在主窗口下的,不能在show()前面添加方法了。有没有将窗口由隐藏到显示过程中的触发事件或其他的,我在这个过程中添加方法,可能会适合一点。

支持(0) 反对(0) 龙泽清 | 园豆:172 (初学一级) | 2014-05-08 10:45
0

我之前也遇到过类似效果,有没有试过添加一个中间值,将其设定为隐藏,然后可以对这个中间量进行操作来实现你要的效果呢,

小熊QQ糖 | 园豆:152 (初学一级) | 2014-05-08 15:18

中间量?这个有点不懂···求指点

支持(0) 反对(0) 龙泽清 | 园豆:172 (初学一级) | 2014-05-08 16:00
0

没必要那么麻烦,你把前一个界面对象传到后一个界面中去,直接操作。

Form1 frm1 = new Form1();

frm1.show();

Form2 frm2 = new Form2(frm1);

frm2.show();

frm2.Button_Click()

{

  frm1.lable1.text="XXXX";

}

收获园豆:1
hailants | 园豆:750 (小虾三级) | 2014-05-08 15:58

直接在后一界面中操作前一界面?那是不是需要新建一个实例什么的啊?

支持(0) 反对(0) 龙泽清 | 园豆:172 (初学一级) | 2014-05-08 16:02

我去试试 谢谢啊

支持(0) 反对(0) 龙泽清 | 园豆:172 (初学一级) | 2014-05-08 16:03

@龙泽清: 在主界面创建界面2的时候把界面1的实例作为参数传入就可以了

支持(0) 反对(0) hailants | 园豆:750 (小虾三级) | 2014-05-12 09:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册