0

我的 Mainform 中有一个列表视图,我需要获取文本框中的值和另一个表单名称 Add_Order 中的标签?

Add_Order add = new Add_Order();
ListViewItem item = new ListViewItem();
item.Text = add.textBox3.Text;
item.SubItems.Add(add.label6.Text);
item.SubItems.Add(add.textBox2.Text);
item.SubItems.Add(add.textBox1.Text);
item.SubItems.Add(add.textBox3.Text);
mainform.listView2.Items.Add(item);
4

3 回答 3

3

我个人不会在您的 Add_Order 表单中公开控件。您的调用表单不应该知道 Add_Order 表单的内部结构,只知道它的公共方法和属性。我会创建一个公共方法并使用它来检索您需要的信息。像这样的东西:

Add_Order.cs

public partial class Add_Order : Form
{
    public Add_Order()
    {
        InitializeComponent();
    }
    public List<string> GetData()
    {
        List<string> list = new List<string>();
        list.Add(textBox3.Text);
        list.Add(label6.Text);
        list.Add(textBox2.Text);
        list.Add(textBox1.Text);
        return list;
    }
}

主窗体

private void button1_Click(object sender, EventArgs e)
{
    Add_Order add = new Add_Order();
    add.ShowDialog();

    ListViewItem item = new ListViewItem();
    List<string> data = add.GetData();
    item.Text = data[0];
    item.SubItems.Add(data[1]);
    item.SubItems.Add(data[2]);
    item.SubItems.Add(data[3]);
    item.SubItems.Add(data[0]);
    listView2.Items.Add(item);
}
于 2013-03-18T06:26:05.410 回答
1

您可以通过不同的方式将数据传递给其他表单,例如创建公共类以维护表单之间的数据公共数据,或者您可以使用表单构造函数传递数据,例如:

Add_Order frmAddOrder=new Add_Order(data1,data2);
frmAddOrder.show();

并在您的 Add_Order 构造函数中:

    public Add_Order (string data1,string data2)
        {
            InitializeComponent();
   //you can access data1 and data2 here ...

        }
于 2013-03-18T06:28:19.417 回答
1

我给你写一个简单的:

将元素设置ModifierstrueAdd_Order 形式:

在此处输入图像描述

并以主要形式获取它:

  public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            List<string> info= new List<string>;
            info.Add( frm2.textBox1.Text);
             .
             .
             .
        }
    }

编辑

或制作一个结构:

Add_Order.cs

 public partial class Add_Order : Form
    {
        public Add_Order()
        {
            InitializeComponent();
        }

        public Info Get_Data()
        {
            return new Info() { _textBox3 = textBox3.Text,
                                _label6 = label6.Text,
                                _textBox2 = textBox2.Text,
                                _textBox1 = textBox1.Text,
            };
        }

    }
    struct Info
    {
        public string _textBox3;
        public string _label6;
        public string _textBox2;
        public string _textBox1;
    }

Mainform.cs

 public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            frm2.ShowDialog();
            Info lst_data= frm2.Get_Data();
            ListViewItem item = new ListViewItem();
            item.Text = lst._textBox3;
            item.SubItems.Add(lst._label6);
            item.SubItems.Add(lst._textBox2);
            item.SubItems.Add(lst._textBox1);
            mainform.listView2.Items.Add(item);
        }
    }
于 2013-03-18T06:29:48.987 回答