如何将ReadOnly属性添加到此控件?
该控件没有ReadOnly属性。 我是C#的初学者,我现在能想到的就是:
public class MaterialSingleLineTextFieldRO : MaterialSingleLineTextField
{
public bool ReadOnly { ... };
}
答案 0 :(得分:1)
像任何其他属性一样定义它,但在setter中,放置所需的行为。
由于MaterialSingleLineTextFieldRO
使用私有baseTextBox
字段,您需要使用反射来查找它并将其设为只读:
public class MyControl : MaterialSingleLineTextField
{
bool readOnly;
public bool ReadOnly
{
get { return readOnly; }
set
{
readOnly = value;
GetTextBoxControl().ReadOnly = value;
}
}
private TextBox GetTextBoxControl()
{
var f = typeof(MaterialSingleLineTextField).GetField("baseTextBox",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance);
return (TextBox)f.GetValue(this);
}
}
答案 1 :(得分:0)