从另一个表格获取数据
我在我的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);
我个人不会在您的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);
}
我的课程应该如何? – 2013-03-18 06:46:04
@ YOUn'Me你的意思是什么,我给你的Add_Order类的例子应该可以工作。你希望你的工作流程如何工作。总之,你以什么顺序做事。 – 2013-03-18 06:53:41
你是对的,我有一个错误 – 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形式
设置元素Modifiers
到true
:
,并得到它主要形式:
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);
}
}
我应该如何使用这一个V? – 2013-03-18 06:49:35
@ YOUn'Me:看我的编辑 – KF2 2013-03-18 07:04:48
我完成了这个.. – 2013-03-19 01:15:03
你有在V当你创建表单时在现场的线索?此外,我认为你会需要属性的形式,将暴露各自的领域,你可以使用你的'Mainform'的值 – V4Vendetta 2013-03-18 06:08:11
是的,我有字段值 – 2013-03-18 06:09:25
Add_Order表单已经打开? – KF2 2013-03-18 06:11:34