我有两种形式 - 一种是主窗体,它有一个包含从文本文件加载的数据的列表框。另一种是交付表格。当用户选择列表框中的项目并单击编辑按钮时,将显示传递表单,其中所选数据显示在传递表单的文本框中。目前我有这样的事情:
private Visit theVisit = new Visit();
private List<Delivery> deliveries = new List<Delivery>();
private FrmDelivery deliveryForm = new FrmDelivery();
private void updateDelivery()
{
lstDeliveries.Items.Clear();
List<String> listOfD = theVisit.listDeliveries();
lstDeliveries.Items.AddRange(listOfD.ToArray());
}
private void btnEditDelivery_Click(object sender, EventArgs e)
{
deliveryForm.ShowDialog();
updateDelivery();
}
答案 0 :(得分:1)
Form与其他类似:您可以添加属性,也可以设置访问者。
在交付表单上使用属性,该属性在更改时填充文本框。
您现在要做的就是从主表单中设置此值并显示投放表单。
交付表格:
class FrmDelivery: Form
{
TextBox text1; // Initialize this as usual
public string DisplayText
{
get { return text1.Text; }
set { text1.Text = Value; }
}
}
主要表格:
private void btnEditDelivery_Click(object sender, EventArgs e)
{
FrmDelivery frm = new FrmDelivery();
frm.DisplayText = "Whatever Value you want";
frm.ShowDialog();
}
你也可以将text1声明为public,但我不喜欢给予比需要更多的控制权。总是选择最严格的方式。
答案 1 :(得分:0)
有一些方法可以做到这一点,一个是你可以使用静态字段将listbox的selecteditem值传递给Delivery表单
像这样:form1(在listbox的selectedindexchanged事件中):
public static string listboxselecteditem=listbox1.selecteditem;//here you add selected item of listbox
然后在交付表单中执行:
textbox1.Text=form1.listboxselecteditem;//add value of selected item in listbox to textbox in Delivery form