问题描述
- 关于winform窗体跳转的问题
-
两个窗体A和B,从A的两个按钮都可以跳转到B,怎么判断点了哪个按钮进入的B窗体。求详细过程代码
解决方案
A窗体
private void button2_Click(object sender, EventArgs e)
{
Common.A = "btn2";
Form2 f = new Form2();
f.Show();
}
private void button1_Click(object sender, EventArgs e)
{
Common.A = "btn1";
Form2 f = new Form2();
f.Show();
}
B窗体
private void Form2_Load(object sender, EventArgs e)
{
if (Common.A == "btn1")
{
MessageBox.Show("button1");
}
else
{
MessageBox.Show("button2");
}
}
Common类
public class Common
{
public static string A;
}
解决方案二:
你可以传递一个参数啊,B收到那个不就知道哪个打开的B窗体了
解决方案三:
怎么传。。这一块不太懂,有代码么
解决方案四:
自己继承Form,然后重写一个构造函数,传入类型为Button,new Form的时候把按钮实例传入进去就行了
解决方案五:
很简单,在B窗体写一个事件就可以搞定了。其实窗体之间适当的用一些事件控制,可以让逻辑和控制上更完整
A 窗体:
private void button2_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Loading(sender,e);
f.Show();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Loading(sender,e);
f.Show();
}
窗体B:
public void Loading(object sender,EventArgs e)
{
Button bt = sender as Button;
if(bt==null)
return;
}