Demond
Demond

Reputation: 109

How do I get a label in a form to display the values of a property

In my C# windows form I have 2 forms. I would like to display a collection of strings in a label on a form. When I debug I show the 2 elements in my array but they are not showing in the label I am passing it to. When I hover of toString the data is there but how to I pass it to sender so it will display in the label control I have on my form?

Details of what I am trying to pass

In the snippet of code below to data is in toString but how do I get it from there down to sender.ToString????

   public AccountReport_cs(Func<string> toString)
    {
        this.toString = toString;


    }

    private void AccountReport_cs_Load(object sender, EventArgs e)
    {

        label1.Text = sender.ToString();
    }

This is another piece of the code that will open form2 where the information should be displayed.

        private void reportButton2_Start(object sender, EventArgs e)
    {
        AccountReport_cs accountReport = new AccountReport_cs(allTransactions.ToString);
        accountReport.ShowDialog();
    }

Here is the last piece of code and this will show how the data gets to EndOfMonth.

    public class Transaction
{
    public string EndOfMonth { get; set; }
}

        public override List<Transaction> closeMonth()
        {
            var transactions = new List<Transaction>();
            var endString = new Transaction();

                endString.EndOfMonth = reportString;
            transactions.Add(endString);

            return transactions;
        }

Upvotes: 0

Views: 651

Answers (1)

batressc
batressc

Reputation: 1588

If you need to send information between forms, the best thing you can do is create a property in the target form and assign the value you want to send before displaying the form; thus you will not need to change the default constructor of the form.

// Destiny form
public partial class FormDestiny : Form {
    // Property for receive data from other forms, you decide the datatype
    public string ExternalData { get; set; }

    public FormDestiny() {
        InitializeComponent();
        // Set external data after InitializeComponent()
        this.MyLabel.Text = ExternalData;
    }
}

// Source form. Here, prepare all data to send to destiny form
public partial class FormSource : Form {
    public FormSource() {
        InitializeComponent();
    }

    private void SenderButton_Click(object sender, EventArgs e) {
        // Instance of destiny form
        FormDestiny destinyForm = new FormDestiny();
        destinyForm.ExternalData = PrepareExternalData("someValueIfNeeded");
        destinyForm.ShowDialog();
    }

    // Your business logic here
    private string PrepareExternalData(string myparameters) {
        string result = "";
        // Some beautiful and complex code...
        return result;
    }
}

Upvotes: 2

Related Questions