Application.Run(new Form1 (frm.getLoginUser()));
然后我在主窗体中点击一个button弹出另一个窗体,想调用主窗体中的一个button的click事件,但是主窗体虽然new了但是不知道实例名,请问有办法可以调用么?
16 个解决方案
#1
比如另一个窗体是:Form2
Form2 f=new Form2();
f.Show();
#2
你要知道Main是整个程序的入口点,而实际的操作应该是在主窗体中
而且在主窗体可以得到依附在其上的所有控件及相应的事件,应该好好的理下流程
而且在主窗体可以得到依附在其上的所有控件及相应的事件,应该好好的理下流程
#3
我不是要显示form2,是form已经showdialog了,然后再form2中怎么调用form1?
#4
main是程序入口点我知道,但实际的操作也可以在主窗体弹出来的另一个窗体中吧?
#5
你可以将将主窗体点击事件触发的代码抽象成一个公共类的方法,通过传递参数来公共调用
#6
看来只能这样了 不行我就把子窗体的控件搬到主窗体上,不过要改很多visible
#7
如果你以后再写一个程序,然后发现原来写的程序的一个对话框看起来差不多,可以拿来重用。
于是你把这个对话框的代码拷贝过来了。但是很郁闷地发现,根本不能用,为什么呢?因为这个对话框还需要“调用主窗口的一个函数”,于是你就把“主窗口”拷贝来了,发现主窗口还使用另一个子窗口……
算了,我还是重写吧。
每天都在重复劳动,而不知道多学习一点,这真的是很大的悲哀。你看到这里天天有人说自己为什么写了几年程序都没有长进。
给你一个思考题,能不能把主窗体和子窗体双向的调用关系变成单向?
于是你把这个对话框的代码拷贝过来了。但是很郁闷地发现,根本不能用,为什么呢?因为这个对话框还需要“调用主窗口的一个函数”,于是你就把“主窗口”拷贝来了,发现主窗口还使用另一个子窗口……
算了,我还是重写吧。
每天都在重复劳动,而不知道多学习一点,这真的是很大的悲哀。你看到这里天天有人说自己为什么写了几年程序都没有长进。
给你一个思考题,能不能把主窗体和子窗体双向的调用关系变成单向?
#8
当然了,应付眼前的差事似乎比学习、思考什么的更重要。用制造问题的办法解决问题,再去解决因为解决问题而制造的问题,这听上去很滑稽的事情就是你觉得最当务之急的。那么你不但在重复劳动,还在无效劳动,甚至是破坏劳动。
#9
有些人一辈子都搞不清楚自己到底在做什么.真是悲哀.
#10
在Form1中new Form2:Form2 f2=new Form(this);
在Form2中做一个构造函数public Form2(Form1)
private Form1 f1;
public Form2(Form1 f)
{
f1=f;
}
然后这个f1能不能调用Form1中的事件~我也不知道 你可以试下。。。
#11
可以的 刚刚测试了下下 就是要把Form1中的事件做成Public的
#12
应该可以用委托吧,你的意思我不怎么懂,委托可以发送你想发送的对象
#13
做个事件去调用主窗体的BUTTON事件就可以了
#14
膜拜大牛。
我是个初学者,不知道自己有没有理解你的意思,我想的也是怎么样能够复用更多的代码。因为接的是师兄的程序,自己经验也不足,所以虽然感觉之前封装的不好,但是自己也没有头绪。
把调用关系做成单向的:是不是可以再子窗口的构造函数的参数中加入主窗体
#15
嗯 除了把form1中的private改为public之外 还可以添加属性 这样更好一些 没用改变原来的封装
#16
应该可以把 新手对委托没理解透彻
#1
比如另一个窗体是:Form2
Form2 f=new Form2();
f.Show();
#2
你要知道Main是整个程序的入口点,而实际的操作应该是在主窗体中
而且在主窗体可以得到依附在其上的所有控件及相应的事件,应该好好的理下流程
而且在主窗体可以得到依附在其上的所有控件及相应的事件,应该好好的理下流程
#3
我不是要显示form2,是form已经showdialog了,然后再form2中怎么调用form1?
#4
main是程序入口点我知道,但实际的操作也可以在主窗体弹出来的另一个窗体中吧?
#5
你可以将将主窗体点击事件触发的代码抽象成一个公共类的方法,通过传递参数来公共调用
#6
看来只能这样了 不行我就把子窗体的控件搬到主窗体上,不过要改很多visible
#7
如果你以后再写一个程序,然后发现原来写的程序的一个对话框看起来差不多,可以拿来重用。
于是你把这个对话框的代码拷贝过来了。但是很郁闷地发现,根本不能用,为什么呢?因为这个对话框还需要“调用主窗口的一个函数”,于是你就把“主窗口”拷贝来了,发现主窗口还使用另一个子窗口……
算了,我还是重写吧。
每天都在重复劳动,而不知道多学习一点,这真的是很大的悲哀。你看到这里天天有人说自己为什么写了几年程序都没有长进。
给你一个思考题,能不能把主窗体和子窗体双向的调用关系变成单向?
于是你把这个对话框的代码拷贝过来了。但是很郁闷地发现,根本不能用,为什么呢?因为这个对话框还需要“调用主窗口的一个函数”,于是你就把“主窗口”拷贝来了,发现主窗口还使用另一个子窗口……
算了,我还是重写吧。
每天都在重复劳动,而不知道多学习一点,这真的是很大的悲哀。你看到这里天天有人说自己为什么写了几年程序都没有长进。
给你一个思考题,能不能把主窗体和子窗体双向的调用关系变成单向?
#8
当然了,应付眼前的差事似乎比学习、思考什么的更重要。用制造问题的办法解决问题,再去解决因为解决问题而制造的问题,这听上去很滑稽的事情就是你觉得最当务之急的。那么你不但在重复劳动,还在无效劳动,甚至是破坏劳动。
#9
有些人一辈子都搞不清楚自己到底在做什么.真是悲哀.
#10
在Form1中new Form2:Form2 f2=new Form(this);
在Form2中做一个构造函数public Form2(Form1)
private Form1 f1;
public Form2(Form1 f)
{
f1=f;
}
然后这个f1能不能调用Form1中的事件~我也不知道 你可以试下。。。
#11
可以的 刚刚测试了下下 就是要把Form1中的事件做成Public的
#12
应该可以用委托吧,你的意思我不怎么懂,委托可以发送你想发送的对象
#13
做个事件去调用主窗体的BUTTON事件就可以了
#14
膜拜大牛。
我是个初学者,不知道自己有没有理解你的意思,我想的也是怎么样能够复用更多的代码。因为接的是师兄的程序,自己经验也不足,所以虽然感觉之前封装的不好,但是自己也没有头绪。
把调用关系做成单向的:是不是可以再子窗口的构造函数的参数中加入主窗体
#15
嗯 除了把form1中的private改为public之外 还可以添加属性 这样更好一些 没用改变原来的封装
#16
应该可以把 新手对委托没理解透彻