假设存在父窗体A 子窗体B 子窗体C点击父窗体A的button打开子窗体B然后在子窗体B中的textbox1填入值“123”,之后将值“123”传给子窗体C子窗体C中的label1显示“123”,子窗体C存在textbox2,在其中填入“asd”,最后将“123”和“asd”传给父窗体的listview,并且显示在一行中求高人帮住啊~~~~

解决方案 »

  1.   

    在OnTextChanged里面更新可以吧。
      

  2.   

    private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.form1 = this;
                frm.Show();
            }//form2中
    public Form1 form1;
    private void button1_Click(object sender, EventArgs e)
    {
        form1.listView1.Items.Add
    }委托
    if(Form2.DialogResult==DialogResult.Ok)
    {}
      

  3.   

    重载 窗体的的函数
      public Form1()
            {
                InitializeComponent();
            }重载
      public Form1(string str)
         :this()
            {
             str  可以赋值的嘛 不知道你明白没
            }Form1 fr=new Form1(str)fr.ShowDialog()
    this.DialogResult==DialogResult.Ok
      

  4.   

    高人们,我是初学C#的,能讲的稍微详细一点么?打开窗体B C都没啥问题了,关键是怎么让C往A的listview里面添加内容求赐教~~~
      

  5.   

    设置两个公有变量a,b;
    通过C后,a=“asd”,b=“123”;
    你在父窗体A里写一个函数:public void RefListView()
    {
        //这里写A的listView的更新内容,即将公有变量a和b显示上去。
    }在子窗体C中这样写就可以了:FormA form=(FormA)this.Owner;
    form.RefListView();
      

  6.   

    也不用那么麻烦吧,问题1:窗体B内容同步到C:在窗体B的定义里面拿到A对窗体C的引用,然后就能在B的textbox1  changed事件里面对C的label1进行操作了,就能做到同步了
    问题2:同样在C的代码里面拿到对A的引用,然后同样可以对窗体A里面的控件进行操作像这一类的问题都是,窗体间的操作关键是要拿到对目标窗体的引用,拿到之后就可以像操作本窗体一样操作目标窗体的控件以及其他成员
      

  7.   

    http://topic.csdn.net/u/20100915/10/b752654d-411d-4be1-8bb3-b7a5305e621d.html
    我觉得你问的这个问题是关于两个窗体间传值的问题,基本有三中方式.
    不过你这种情况,最好使用类似session 的方法首先,在登陆窗体中将用户名和密码保存到一个对象中 userInfo,包括用户名和密码public class UserInfo
    {  
      public string _userName;
      public string _userPassword;
      public UserInfo(string userName,string userPassword)
      {
      _userName=userName;
      _userPassword = userPassword;
      }
    }
    UserInfo userInfo = new UserInfo("张三","123456");
    AppDomain.CurrentDomain.SetData("UserInfo",userInfo)然后,在该进程中(单程序域进程),所有窗体或其他类对象中都可以这样获得该对象UserInfo temp = (UserInfo)AppDomain.CurrentDomain.GetData("UserInfo");
      

  8.   

    用到this.Owner
    就会报错“无法将类型为“JS.Num”的对象强制转换为类型“JS.Main”。”求赐教
      

  9.   


    WinForm程序窗体间传值比较简单,没有怎么听人家说有几种,WEB页面间传值好像有听说是三种,其中有种好像是session8楼委托没怎么用过哈,期待付点代码,嘿嘿
    (WinForm的窗体拿到引用就非常方便的操作目标窗体了,感觉委托是不是有点大材小用了,嘿嘿,个人理解哈,期待高手给出答案。)
      

  10.   

    Form f =this.parent.finform as Form1f.lable.text ="form2传来的值"
      

  11.   

    楼主看好了,我来一步步的教你怎么传值........1.首先在新建一个Form1,然后拖入一个Button,再拖入一个TextBox设置属性Text="窗体传值",把TextBox的Modifiers属性设为Public,完成一个form1窗体.2,新建一个窗体Form2,拖入一个TextBox,在Form2代码中添加如下代码:
    Private Form1 form1;
    public Form2(Form1 form)
    {
         InitializeComponent();
         form1=form;
    }
    窗体加载事件即Load事件添加如下代码:
    this.textBox1.Text=form1.textBox1.Text;完成第二个窗体.3,回到原来的Form1窗体,在btnClick的单击事件里加入如下代码:
    Form2 form2=New Form2(this);
    form2.Show();窗体传值完成................
      

  12.   

    用变量最简单
    Aobject value = ;
    using (B a = new B(value))
    {
        if (B.ShowDialog() == ..OK)
        {
            //textBox1.Text = B.CurrentValue;
         }
    }//在B中类似控制C。