C# 如何在列表框中显示选定数据并在文本框中显示?

C# 如何在列表框中显示选定数据并在文本框中显示?,c#,winforms,textbox,listbox,C#,Winforms,Textbox,Listbox,我有两个表单——一个是主表单,它有一个列表框,其中包含从文本文件加载的数据。另一个是送货单。当用户在列表框中选择一个项目并单击编辑按钮时,交货单应显示,所选数据显示在交货单的文本框中。目前我有这样的想法: private Visit theVisit = new Visit(); private List<Delivery> deliveries = new List<Delivery>(); private FrmDelivery deliveryForm = new

我有两个表单——一个是主表单,它有一个列表框,其中包含从文本文件加载的数据。另一个是送货单。当用户在列表框中选择一个项目并单击编辑按钮时,交货单应显示,所选数据显示在交货单的文本框中。目前我有这样的想法:

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();
}
private Visit theVisit=new Visit();
私有列表交付=新列表();
私有FrmDelivery delivery form=新FrmDelivery();
私有void updateDelivery()
{
lst.Items.Clear();
List listOfD=theVisit.listDeliveries();
lstDeliveries.Items.AddRange(listOfD.ToArray());
}
私有void btnEditDelivery_单击(对象发送者,事件参数e)
{
deliveryForm.ShowDialog();
updateDelivery();
}

有一些方法可以做到这一点,一种是您可以使用静态字段将listbox的selecteditem的值传递给传递表单

像这样:

表格1(在列表框的selectedindexchanged事件中):

然后在交付形式中,您可以:

textbox1.Text=form1.listboxselecteditem;//add value of selected item in listbox to textbox in Delivery 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,但我不希望提供超出需要的更多控制。始终选择最严格的方式。

我们可以查看您的Xaml吗?这是WinForms吗?请发布两个表单中的代码好吗?我希望文本显示在文本框中我尝试过此操作,但无效:private void btnEditDelivery_Click(object sender,EventArgs e){Delivery Delivery form=new Delivery();deliveryForm.customerName=(lstDeliveries.SelectedIndex.ToString());deliveryForm.ShowDialog();updateDelivery();}
private void btnEditDelivery_Click(object sender, EventArgs e)
{
    FrmDelivery frm = new FrmDelivery();
    frm.DisplayText = "Whatever Value you want";
    frm.ShowDialog();
}