从另一个表格获取数据

从另一个表格获取数据

问题描述:

我在我的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); 
+2

你有在V当你创建表单时在现场的线索?此外,我认为你会需要属性的形式,将暴露各自的领域,你可以使用你的'Mainform'的值 – V4Vendetta 2013-03-18 06:08:11

+0

是的,我有字段值 – 2013-03-18 06:09:25

+0

Add_Order表单已经打开? – KF2 2013-03-18 06:11:34

我个人不会在您的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; 
    } 
} 

的MainForm

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); 
} 
+0

我的课程应该如何? – 2013-03-18 06:46:04

+0

@ YOUn'Me你的意思是什么,我给你的Add_Order类的例子应该可以工作。你希望你的工作流程如何工作。总之,你以什么顺序做事。 – 2013-03-18 06:53:41

+1

你是对的,我有一个错误 – KF2 2013-03-18 06:54:00

可以传递数据的其他形式以不同的方式,如创建公共类,以保持数据的公共数据或者您可以使用表单构造函数传递数据:

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 ... 

     } 

我写一个简单的你:在Add_Order形式

设置元素Modifierstrue

enter image description here

,并得到它主要形式:

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); 
     } 
    } 
+0

我应该如何使用这一个V? – 2013-03-18 06:49:35

+0

@ YOUn'Me:看我的编辑 – KF2 2013-03-18 07:04:48

+0

我完成了这个.. – 2013-03-19 01:15:03