formA里面有一个listview,还有一个button.
我一点formA里面的button,就会弹出formB.
我在formB里面录入数据以后,关闭formB,返回到formA的时候,
要求刚才在formB里面输入的数据,添加到formA的listview里面。标准的做法应该怎么做?

解决方案 »

  1.   

    将FormB中的输入控件TextBox的Modifiers属性设置为Public以便FormA能访问。
    参考如下代码:
    public partial class FormB : Form
    {
        public FormB()
        {
            InitializeComponent();
        }    private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Trim() == "")
            {
                MessageBox.Show("textBox1.Text不能为空", 
                    "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            DialogResult = DialogResult.OK;
        }    private void button2_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
        }
    }FormA中的代码:
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 vForm2 = new Form2();
        if (vForm2.ShowDialog() != DialogResult.OK) return;
        ListViewItem vListViewItem = listView1.Items.Add(vForm2.textBox1.Text);
        vListViewItem.SubItems.Add(vForm2.textBox2.Text);
    }
      

  2.   

    如果我的listviewitem里面有2个column,分别对应Formb的2个textbox。
    FormA中的代码应该怎么写?
      

  3.   

    标准的做法是在FormB的构造函数里面引用FormA的listview
    那么在FormB提交数据之后直接更新FormA的listview
      

  4.   

    SubItems就是加其他项的,测试后在说吧。
    vListViewItem.SubItems.Add(vFormB.textBox1.Text);
    vListViewItem.SubItems.Add(vFormB.textBox2.Text);
      

  5.   

    我觉得是点击button时建一个文本,进入formb后把formb的数据加载到文本里面,返回的时候把文本里面的数据加载到forma
      

  6.   

    起始放到一个Form里面  容易实现而且直观也方便用户修改
      

  7.   

    Form间的传值,可以用属性也可以用委托
    不建议把控件属性改成public
      

  8.   

    传递相关数据到FormB,在FormB中进行修改后,把修改的数据更新到FormA。
    传递的方式可以有很多种,这里的FormB强烈建议使用模式窗口方式打开。
    Windows窗体间的数据交互
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
    窗体的参数传递
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx#sec5
      

  9.   

    我到现在没弄明白
    不管标准不标准了
    只要能实现就可以了重新问:
    formA里面有一个listview,listview有2列,我定义的名字分别是date,detail。
    formA还有一个button. 
    我一点formA里面的button,就会弹出formB.
    formB里面有2个文本框,分别是date,detail
    我在formB里面录入数据以后,关闭formB,返回到formA的时候, 
    要求刚才在formB里面输入的date,detail,添加到formA的listview里面。
    只要实现就可以,谁给点代码? 
      

  10.   

    用ShowDialog显示FormB,在返回结果后,刷新FormA的对应表单内容即可。
      

  11.   

    我再重新问一下啊现在不是2个form,就一个form了。
    form上有一个listview,listview里面有3列,分别是a,b,c
    我现在想写一段代码
    就往listview里面添加一行,内容是1,2,3
    我应该怎么写?
      

  12.   

                    this.listView1.Items.Add(“1”);
                    this.listView1.Items[i].SubItems.Add(“2”);
                    this.listView1.Items[i].SubItems.Add(“3”);