I have two forms - one is the main form which has a listbox containing data which is loaded in from a text file. The other is a delivery form. When the user selects an item in the list box and clicks the edit button the delivery form should appear with the selected data displayed in the text box of the delivery form. At the moment I have something like this:
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();
}
A Form is a class like any other: you can add properties and you can setup accessors.
Use a property on the delivery form which fill a textbox when changed.
All you have to do now is set this value from the main form and show the delivery form.
Delivery Form:
class FrmDelivery: Form
{
TextBox text1; // Initialize this as usual
public string DisplayText
{
get { return text1.Text; }
set { text1.Text = Value; }
}
}
Main Form:
private void btnEditDelivery_Click(object sender, EventArgs e)
{
FrmDelivery frm = new FrmDelivery();
frm.DisplayText = "Whatever Value you want";
frm.ShowDialog();
}
You could also declare text1 as public, but I don't like given more control than needed. Always pick the most restrictive way.
There are some ways to do this,one is you can use static field to pass the value of selecteditem of listbox to Delivery form
like this :
form1(in selectedindexchanged event of listbox):
public static string listboxselecteditem=listbox1.selecteditem;//here you add selected item of listbox
and then in Delivery form you do :
textbox1.Text=form1.listboxselecteditem;//add value of selected item in listbox to textbox in Delivery form
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.