dong19980903
共白头
采纳率37.5%
2016-03-18 03:33 阅读 1.7k
已采纳

关于winform窗体跳转的问题

1

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    u013104440 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;
    }
    
    点赞 1 评论 复制链接分享
  • u013104440 dianaly122 2016-03-18 03:35

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

    点赞 评论 复制链接分享
  • dong19980903 共白头 2016-03-18 03:40

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

    点赞 评论 复制链接分享
  • diz_sun diz_sun 2016-03-18 04:57

    自己继承Form,然后重写一个构造函数,传入类型为Button,new Form的时候把按钮实例传入进去就行了

    点赞 评论 复制链接分享
  • u012097590 涛神-DevExpress资深开发者 2016-03-18 06:41

    很简单,在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;
    }

    点赞 评论 复制链接分享

相关推荐