job.answiz.com
  • 1
Votes
name

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();
}
name
  • 1
Teacher

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.

  • 1
Reply Report