程序中,有多个界面,我是用触发事件来调用界面显示的(在主界面上的panel上),用的是show()显示。问题来了,我在后一个子界面操作完成后,需要将某些值传给前一个在主界面上显示的子界面。这时,这个前子界面会直接显示出来,不用经过load事件,也不用经过actived事件。有什么办法能对这个界面在显示之前进行一些操作吗?比如初始化,比如传值等。
Form frm = new Form();
frm.你需要的值 = xxx;//你需要的值 可以是那个子窗体的一个属性。
frm.Show();
new一个新实例的话,这个窗口在前面定义的触发事件就会为空,窗口就不能再调用了。
@龙泽清: Form1_Enter事件??是这个意思不?
或者是你的panel的 Enter事件??
@博客¥:非常感谢,你说的Form1_Enter事件的思路就是我要问的意思。 Form1_Enter事件确实是可以在子窗口由隐藏到显示之后触发,但是,这个事件是在我这个子窗口显示出来之后,并且在窗口上开始操作之前触发的。比如点击窗口或者是点击窗口中的控件。能不能在我这个窗口显示之前,完成我对这个窗口的操作。
@龙泽清: 那 actived 为啥不能用呢? 你可以给他们绑定多个事件啊
@博客¥: 我先前也是以为actived事件可以用的,但是返回前一界面的时候,不会触发 actived事件····
@博客¥: 虽然问题没有完全解决,不过至少有了思路。谢谢啊。
@龙泽清: 客气了!
@龙泽清: 其实我想到的个很笨的方法,你在设置一组全局变量,里面就存你的所有窗体的引用,你想改变哪个参数就可以很方便的改变了!
@博客¥: 窗体有点多 都存为全局变量有点不现实。
@龙泽清: 那就抽象一个接口出来,你的所有窗体都实现这个窗体,把所有的窗体放在一个集合里面,显示的时候就调用那个接口的方法
定义一个方法初始化方法,在show前调用一下
在show()这个事件我是写在主窗口下的,不能在show()前面添加方法了。有没有将窗口由隐藏到显示过程中的触发事件或其他的,我在这个过程中添加方法,可能会适合一点。
我之前也遇到过类似效果,有没有试过添加一个中间值,将其设定为隐藏,然后可以对这个中间量进行操作来实现你要的效果呢,
中间量?这个有点不懂···求指点
没必要那么麻烦,你把前一个界面对象传到后一个界面中去,直接操作。
Form1 frm1 = new Form1();
frm1.show();
Form2 frm2 = new Form2(frm1);
frm2.show();
frm2.Button_Click()
{
frm1.lable1.text="XXXX";
}
直接在后一界面中操作前一界面?那是不是需要新建一个实例什么的啊?
我去试试 谢谢啊
@龙泽清: 在主界面创建界面2的时候把界面1的实例作为参数传入就可以了