2 dong19980903 dong19980903 于 2016.03.18 11:33 提问

关于winform窗体跳转的问题

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

5个回答

u013104440
u013104440   2016.03.18 11: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;
}
u013104440
u013104440   2016.03.18 11:35

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

dong19980903
dong19980903   2016.03.18 11:40

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

diz_sun
diz_sun   2016.03.18 12:57

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

u012097590
u012097590   2016.03.18 14: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;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
winform中窗体之间跳转如何传值
通过公共静态类进行传值;  通过绑定事件进行传值;  使用Attribute  public partial class Form1 : Form    {    private void button1_Click(object sender, EventArgs e)    {    Form2 frm2 = new Form2();    frm2.Show(
C#在winform中页面跳转实现
大作业做管理系统时要实现登录功能,就像QQ登录一样,登录后登录界面自动关闭,原本以为实现没什么难的,谁知坑了我半个晚上一开始是这样写的 public partial class Form1 : Form { private Form2 anotherForm; public Form1() { InitializeCom
winform登录后跳转 (主窗体转移到新窗口)
 在Program类中static class Program{internal static ApplicationContext context = new ApplicationContext(new Form1());/// /// 应用程序的主入口点。/// [STAThread]static void Main(){
Winform 实现进入主程序窗体后关闭登录窗体
效果图: 具体步骤: 新建一个窗体,并添加相关控件 设置以下属性 BackgroundImage:设置窗体背景图片 BackgroundImageLayout:Zoom //设置窗体背景图片布局方式 ControlBox:false//设置最大化最小化和关闭窗体为不显示 FormBorderStyle:None//设置窗体外边框为无外边框 StartPosition:
winform 界面跳转
c# 一个窗体 跳转到另一个窗体 窗体1代码 using System.Windows.Forms; namespace CHUANGTI {     public partial class Form1 : Form     {         public event EventHandler changeinfo;         ///
winform 窗体 闪屏 彻底解决
winform窗体内如果控件太多,在新建窗体活窗体刷新时,都会各种闪屏,网上百度,各种开缓存,实际并未说明白
c# winform窗体之间传递参数问题总结
窗体之间传递参数总结: 方案一: 窗体属于类,可以在窗体类中定义已全局变量,类型为公开、静态的。   示例: public static string str ="";   注意是静态变量,如果为:   public string str = "";   可能会出现问题,非静态变量只能实例化对象后,才可以访问,如果该值为动态赋值的话,当别的窗口调用的时候,该值 str
winform窗体上的超链接怎么跳转到网页?
放一个linkLabel(工具箱里有),在它的的LinkClicked事件(双击生成)里输入 System.Diagnostics.Process.Start("explorer.exe", "http://www.baidu.com"); 就行了 可以用linkLabel控件 打开一个超链接 1 System.Diagnostics
winform间的传值并linklabel动态窗口跳转
Form1中有textbox1,button1Form2中有linklabel1. (1)传值是在构造函数里实现的.Form1中textbox里的值button1单击触发传到Form2的linklabel1中Form2中代码public Form2(string abc)        {            InitializeComponent();            t
C# Winform登录成功打开新窗体
最近要做一个WinForm程序,需要想QQ那样登录成功后打开一个新的窗体,同时关闭登录窗体。刚开始我是直接Form one=new Form();one.Show();this.Close();这样两个窗体都关闭了,因为是在主线程上面操作。(注意:如果是在其他线程上面使用该方法是可以实现的,但是在主线程无法实现).后来在网上差了资料,根据http://blog.csdn.net/knight94/