共白头
2016-03-18 03:33
采纳率: 37.5%
浏览 1.7k
已采纳

关于winform窗体跳转的问题

两个窗体A和B,从A的两个按钮都可以跳转到B,怎么判断点了哪个按钮进入的B窗体。求详细过程代码

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • dianaly122 2016-03-18 03:40
    已采纳

    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;
    }
    
    点赞 打赏 评论
  • dianaly122 2016-03-18 03:35

    你可以传递一个参数啊,B收到那个不就知道哪个打开的B窗体了

    点赞 打赏 评论
  • 共白头 2016-03-18 03:40

    怎么传。。这一块不太懂,有代码么

    点赞 打赏 评论
  • diz_sun 2016-03-18 04:57

    自己继承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;
    }

    点赞 打赏 评论

相关推荐 更多相似问题