我想实现这样的功能,通过form2打开form1时,form1中textbox控件的text属性和form2中textbox的text属性相等,从form3打开form1会发生相同的事情,我想通过判断form1的打开方式来显示不同的form1中textbox不同的text值。
请多指教。。不胜感激。

解决方案 »

  1.   

    你可以在form1里面设置一个变量,表示从2或者3打开,在2打开1之前,设置这个变量为2,3打开1之前,设置这个变量为 3,
      

  2.   

    如果你不想这么干,可以直接查看堆栈,不过这样看起来很不好,StackTrace st = new StackTrace();
    StackFrame sf = st.GetFrame(n);//n取多少,取决于你在哪里调用这些代码,通常是2~3左右
    sf.GetMethod().ReflectedType.FullName应该就是Form2,Form3的类名了,
      

  3.   

    难道你们都不知道有Form.Owner属性?
      

  4.   

    public static class test
    {
        public static string value;
    }
    Form2中
    test.value=textBox.Text.Trim();
    form1 f1=new form1();
    f1.show();
    Form1中
    textBox.Text=tetx.value;
    form3同理
      

  5.   


    LZ你说的是属性啊 哦
    这样也可以比如form2中 假如textbox的Enable为false test.value="false";
    在form1中 text.Enale=test.value;
      

  6.   

    这个就用form1的构造函数里设置一个参数就可以了。。
    如:
    Form1(string str)
    {
       this.textBox1.text =str;
    }在form2里设置form1的时候就这样Form1 frm =new Form1(this.textBox1.text);
    frm.show();
      

  7.   

    Form1 frm =new Form1(this.textBox1.text);
    frm.show();
    是显示form1的作用,但我不知道Form1 frm =new Form1(this.textBox1.text)括号里的内容,起到什么作用?
      

  8.   

     class Database
        {
            public static string loginID = "";
                 }
    新建一个类,然后FORM1单击按钮1的时候Database.loginID = "xxxx1";给loginID赋值然后打开FORM2,单击按钮2的时候Database.loginID = "xxxx2";赋值为另一个值,打开FORM3
    然后分别在FORM2,FOMR3,LOAD事件里写textBox1.Text = Database.loginID;
    就可以了
      

  9.   

    顶6楼的
    难道你们都不知道有Form.Owner属性?
      

  10.   

    经测试Form.Owner无效,楼主可以通过以下代码实现,如果需要form3,代码与form2类似即可
    form1public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private string aa;        public string Aa
            {
                get { return aa; }
                set { aa = value; }
            }
            private TextBox txtForm1Name;        public TextBox TxtForm1Name
            {
                get { return txtForm1Name; }
                set { txtForm1Name = value; }
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                //第一种 通过属性传
                //if (Aa!="")
                //{
                //    txtName.Text = Aa;
                //}
                //第二种获取form2赋给公有控件Lbl,并添加到form1这个窗口中
                //当Lbl不为空则表示在form2中已经赋了值给它,则可以使用
                if (TxtForm1Name != null)
                {
                    this.Controls.Add(TxtForm1Name);
                }
            }
        }
    form2public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }        private void Form2_Load(object sender, EventArgs e)
            {
                
            }        private void button1_Click(object sender, EventArgs e)
            {
                
                Form1 form1 = new Form1();
                //第一种form2通过设置form1里的公有属性Aa的值来实现传递
                form1.Aa = txtName.Text.Trim();//获取窗体中广西框的值给form1的公共变量
                //第二种则是通过form1里的公有控件传值,在form1加载事件时把该控件添加到窗口中
                form1.TxtForm1Name = txtName;
                form1.Show();
            }
        }