[ACCEPTED]-How to access properties of a usercontrol in C#-richtextbox
Cleanest way is to expose the desired properties 11 as properties of your usercontrol, e.g:
class MyUserControl
{
// expose the Text of the richtext control (read-only)
public string TextOfRichTextBox
{
get { return richTextBox.Text; }
}
// expose the Checked Property of a checkbox (read/write)
public bool CheckBoxProperty
{
get { return checkBox.Checked; }
set { checkBox.Checked = value; }
}
//...
}
In 10 this way you can control which properties 9 you want to expose and whether they should 8 be read/write or read-only. (of course you 7 should use better names for the properties, depending 6 on their meaning).
Another advantage of this 5 approach is that it hides the internal implementation 4 of your user control. Should you ever want 3 to exchange your richtext control with a 2 different one, you won't break the callers/users 1 of your control.
Change the access modifier ("Modifiers") of 2 the RichTextBox in the property grid to 1 Public.
Add a property to the usercontrol like this
public string TextBoxText
{
get
{
return textBox1.Text;
}
set
{
textBox1.Text = value;
}
}
0
I recently had some issues doing this with 15 a custom class:
A user control had a public 14 property which was of a custom class type. The 13 designer by default tries to assign some 12 value to it, so in the designer code, the 11 line userControlThing.CustomClassProperty = null
was being automatically added.
The 10 intent was to be able to provide the user 9 control with a custom class at any point 8 while running the program (to change values 7 visible to the user). Because the set {}
portion 6 did not check for null values, various errors 5 were cropping up.
The solution was to change 4 the property to a private one, and use two 3 public methods to set and get the value. The 2 designer will try to auto-assign properties, but 1 leaves methods alone.
You need to make a public property for the 3 richtextbox, or expose some other property 2 that does the job of setting the richtextbox 1 text like:
private RichTextBox rtb;
public string RichTextBoxText
{
get
{
return rtb.Text;
}
set
{
rtb.Text = value;
}
}
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.