0

我有两种形式 - 一种是主要形式,它有一个列表框,其中包含从文本文件加载的数据。另一种是交货单。当用户在列表框中选择一个项目并单击编辑按钮时,应出现交付表单,其中所选数据显示在交付表单的文本框中。目前我有这样的事情:

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();
}
4

2 回答 2

1

表单与其他任何类一样:您可以添加属性,也可以设置访问器。

使用交付表单上的属性,该属性在更改时填充文本框。

您现在所要做的就是从主表单设置此值并显示交付表单。

交付形式:

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,但我不喜欢给予超出需要的控制权。始终选择最严格的方式。

于 2012-11-27T22:06:38.650 回答
0

有一些方法可以做到这一点,一种是您可以使用静态字段将列表框的选定项的值传递给交付表单

像这样 :

form1(在列表框的 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
于 2012-11-27T21:52:41.193 回答