我正在做一个必须处理大量文本更改事件的项目。例如: - 更改TextBox
,Label
..的文字
有没有办法可以创建一个可以与具有文本属性的所有用户界面元素交互的方法?
我编写的以下代码仅适用于TextBox
用户界面元素。
有没有办法我可以调整代码以支持所有具有Text属性的UI元素?
public void MailEmptyFieldPopulate(TextBox tbx , string text = null)
{
if (string.IsNullOrEmpty(text))
{
tbx.Text = "<Empty Field>";
}
else
{
tbx.Text = text;
}
}
答案 0 :(得分:0)
尝试:
public void MailEmptyFieldPopulate(Control ctrl, string text = null)
{
if(ctrl==null) return;
ctrl.Text = string.IsNullOrEmpty(text)?"<Empty Field>":text;
}
答案 1 :(得分:0)
如果你的意思是所有来自Control的元素,那么你应该这样做:
public void ChangeText(Control control, string text)
{
control.Text = text;
}
如果您不知道它是否来自Control,请使用反射:
public void ChangeTextReflection<T>(T control, string text)
{
var info = control.GetType().GetProperty("Text");
info.SetValue(control, text);
}