Passing data between class and form in C # using delegate parameter

I need to pass a value to RichTextBox from a class. Here is my code. I have to pass values ​​to any tools like textbox, list, but I don't know how. I have to use delegates to pass the md value to both methods and to the same richtextbox.


 namespace delegateEx2
{
    public class MyClass : Form1
    {
        delegate void MyDelegate(string MyString);

        public void ShowThoseMessages()
        {
            MyDelegate md = new MyDelegate(log1);
            md += log2;
            md("Error Log Text");
        }

        public void log1(string message) {

            //what can I write here to pass the md into the RichTextBox on Form1.cs
            //I tried something like Systems.Windows.Form.rtxblog but did not work 
            //......................................


        }

        public void log2(string message2)
        {

          //.....................................

        }

    }


      

0


source to share


2 answers


Simple questions - change the modifier in the richtextbox declaration. You can find the declaration at Form1.designer.cs. Change the modifier from private to protected, then you can access the richtextbox from the log1 method.



0


source


I should have seen this before. Here is some sample code ...

TheClass.cs

using System.Windows.Forms;

      

...



public bool validateForm(TextBox txtTitle, TextBox txtPath, CheckedListBox ckList)
{
    bool title = false;
    bool path = false;

    if (txtTitle.Text == String.Empty)
    {
       title = false;
       txtTitle.Text = "Title is empty!";
       paintred(txtTitle);
    } else { title = true; paintwhite(txtTitle); }
    if (txtPath.Text == String.Empty)
    {
       path = false;
       txtPath.Text = "Path is empty!";
       paintred(txtPath); 
    } else { path = true; paintwhite(txtPath); }   

    bool ckItem1 = ckList.GetItemChecked(0);
    bool ckItem2 = ckList.GetItemChecked(1);
    bool ckItem3 = ckList.GetItemChecked(2);
    bool ckItem4 = ckList.GetItemChecked(3);
    bool ckItem5 = ckList.GetItemChecked(4);

    if (title && path && ckItem1 && ckItem2 
        && ckItem3 && ckItem4 &&
           ckItem5 )
        return true;
    else
        return false;
}

      

Then in my form I ...

    if (TheClass.validateForm(txtBox, txtBox2, listCheckList))
    {
        txtBox3.Text = TheClass.generateItem1(something, something2);
        txtBox4.Text = TheClass.generateItem2(something, something2, txtPath.Text, txtTitle.Text, listCheckList.GetItemChecked(5));
    }
    else
    {
        MessageBox.Show("Please check fields marked in red, if any. Double check your Check List required items.", "Title Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }

      

+2


source







All Articles