我想通过form1做一个录入界面,将里边通过文本框录入的数值复值给 form2中的listview各列用3个textbox1.text举例吧
分别对应listview的3个列
谢谢

解决方案 »

  1.   

    Form2是主窗体吧,你是不是想实现这样的效果 ?比如说在Form2上点击一个按钮"录入数据",弹出Form1,录入数据,点击"OK",数据入Form2的Listview?
      

  2.   

    在form2定义一个数组
    在打开form2之前
    将form1上的3个textbox的text赋给数组
    在form2的load事件里把数组值加到listview里
      

  3.   

    Form1中Form2 fm2 = new Form2(fm1);//给Form2的构造函数添加个参数,把Form1传递下去。这样Form2就能调用Form1中的内容了。或者给Form2增加个public的方法。
    在Form1中调用 fm2.addText(textbox1.text);
      

  4.   

    很多种办法传值
    可以用属性构造函数事件等
    http://community.csdn.net/Expert/TopicView3.asp?id=5166237
      

  5.   

    liujia_0421() 说的对,就是要这样的效果
      

  6.   

    需要需要,谢谢liujia_0421() 还是你最了解,嘿嘿
      

  7.   

    可以这么做,如果两个窗体是在同一个命名空间下:定义一个代理,注意这个代理是全局的:
    public delegate void MyInvoke(string Item1,string Item2,string Item3);//在窗体From2中有这么一个回调函数,用于在ListView里添加一个新项的:
    private void UpdateListView(string Item1,string Item2,string Item3)
    {
        ListView1.Items.Add(Item1);
        ListView1.Items[ListView1.Items.Count - 1].SubItems.Add(Item2);
        ListView1.Items[ListView1.Items.Count - 1].SubItems.Add(Item3);
    }//比如说点击Form2的一个按钮弹出Form1进行录入,在点击按钮的事件下:
    //把委托传过去
    Form1 frmEdit=new Form1(new MyInvoke(UpdateListView));
    frmEdit.ShowDialog(this);//在Form1里定义一个属性
    private MyInvoke mi=null;在构造函数中接收这个委托:
    public Form1(MyInvoke myInvoke)
    {
       this.mi=myInvoke;
    }//录入数据后,点击OK按钮,在点击事件下:
    //回调
    this.mi(this.TextBox1.Text,this.TextBox3.Text,this.TextBox3.Text);
    this.Close();//关闭Form1
    说明:以上代码没有测试过,但以前这么用过,虽然方法比较麻烦,但用起来不错,有问题再说...
      

  8.   

    另外做一个类 如DB
    建一个static 公共变量 如TempStr将form1的值传给tempstr
    然后在form2中直接调用DB.TempStr
      

  9.   

    请问一下,这个代理写在那里?public delegate void MyInvoke(string Item1,string Item2,string Item3);
      

  10.   

    提示我" 找不到类型或命名空间名称“MyInvoke”(是否缺少 using 指令或程序集引用?)"
      

  11.   

    MyInvoke 写在你程序中的命名空间低下,不要写在类中,注意有public修饰
      

  12.   

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Text;namespace SnmpAplication
    {
             //写在这里...
    public delegate void MyInvoke(string Item1,string Item2,string Item3);
                      //以下是Form1
    public class frmSnmp : System.Windows.Forms.Form
             {
                  //.....
              }
    }
      

  13.   

    那是写在FORM1里还是FORM2里那?
      

  14.   

    都可以...最好写在Form2(主窗体)吧,这样看起来也方便...
      

  15.   

    放在Form2类定义的上面...即同一命名空间下,与Form1,Form2平级的....
      

  16.   

    OK,问题解决了如果我要是想再把form2的值给form1再照着这个方法写就可以了吧?
      

  17.   

    如果Form2给Form1,就更简单了,直接通过构造函数传过去就行了...
      

  18.   

    Form1 frmEdit=new Form1(new MyInvoke(UpdateListView),string para1,string para2...);
    frmEdit.ShowDialog(this);然后将Form1的构造函数改成可以接收几个参数的就行了...