我用一個文本框和一個richtextbox做了一個C#用戶控件。如何訪問C#中的usercontrol的屬性#
如何從usercontrol外部訪問richtextbox的屬性。
例如..如果我把它放在一個窗體中,我如何使用richtextbox的Text屬性?
感謝
我用一個文本框和一個richtextbox做了一個C#用戶控件。如何訪問C#中的usercontrol的屬性#
如何從usercontrol外部訪問richtextbox的屬性。
例如..如果我把它放在一個窗體中,我如何使用richtextbox的Text屬性?
感謝
乾淨的方法是爲你的用戶控件的屬性,如暴露所需的性能:
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; }
}
//...
}
這樣你可以控制你要公開哪些屬性以及是否應讀/寫或讀 - 只要。 (當然你應該使用更好的屬性名稱,具體取決於它們的含義)。
這種方法的另一個優點是它隱藏了用戶控件的內部實現。如果您想要將RichText控件與其他控件進行交換,則不會破壞控件的調用者/用戶。
更改訪問修飾符在屬性網格公共RichTextBox中的(「調節器」)。
這可能不是最好的主意,因爲它允許控件的使用者完全控制RichTextBox。你只應該公開消費者應該能夠改變的屬性。 – 2009-01-04 19:36:32
一個屬性添加到用戶控件這樣
public string TextBoxText
{
get
{
return textBox1.Text;
}
set
{
textBox1.Text = value;
}
}
你需要做一個公共屬性的RichTextBox的,或暴露,做設置RichTextBox的文字一樣的工作的一些其他財產:
private RichTextBox rtb;
public string RichTextBoxText
{
get
{
return rtb.Text;
}
set
{
rtb.Text = value;
}
}
我最近有一些問題,自定義類這樣做:
用戶控制了公共財產這是一個自定義類的類型。默認情況下,設計者會嘗試爲其分配一些值,因此在設計器代碼中,userControlThing.CustomClassProperty = null
行被自動添加。
意圖是能夠在運行程序的任何時刻爲用戶控件提供自定義類(以更改用戶可見的值)。由於set {}
部分沒有檢查空值,所以出現了各種錯誤。
解決方案是將屬性更改爲私有屬性,並使用兩個公共方法來設置和獲取值。設計人員會嘗試自動分配屬性,但只保留方法。
在,公共布爾CheckBoxProperty { get {return checkBox.Checked; } get {checkBox.Checked = value; } } 得到應該是一組 – 2009-11-24 18:15:35