创建一个可以与具有 .Text 属性 的用户界面元素交互的方法。
Make a method which can interact with user interface elements which have .Text property.
我正在做一个必须处理大量文本更改事件的项目。例如:- 更改 TextBox
、 Label
等的文本
有没有一种方法可以创建一个方法来与所有具有文本属性的用户界面元素交互?
我编写的以下代码仅适用于 TextBox
用户界面元素。
有没有一种方法可以调整代码以支持文本 属性 的所有 UI 元素?
public void MailEmptyFieldPopulate(TextBox tbx , string text = null)
{
if (string.IsNullOrEmpty(text))
{
tbx.Text = "<Empty Field>";
}
else
{
tbx.Text = text;
}
}
尝试:
public void MailEmptyFieldPopulate(Control ctrl, string text = null)
{
if(ctrl==null) return;
ctrl.Text = string.IsNullOrEmpty(text)?"<Empty Field>":text;
}
如果您指的是所有派生自 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);
}
我正在做一个必须处理大量文本更改事件的项目。例如:- 更改 TextBox
、 Label
等的文本
有没有一种方法可以创建一个方法来与所有具有文本属性的用户界面元素交互?
我编写的以下代码仅适用于 TextBox
用户界面元素。
有没有一种方法可以调整代码以支持文本 属性 的所有 UI 元素?
public void MailEmptyFieldPopulate(TextBox tbx , string text = null)
{
if (string.IsNullOrEmpty(text))
{
tbx.Text = "<Empty Field>";
}
else
{
tbx.Text = text;
}
}
尝试:
public void MailEmptyFieldPopulate(Control ctrl, string text = null)
{
if(ctrl==null) return;
ctrl.Text = string.IsNullOrEmpty(text)?"<Empty Field>":text;
}
如果您指的是所有派生自 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);
}