我有这样的功能:
public static void NewFunction (TextBox txtOne)
{
//Do Something with txtOne
}
现在我想将当前的Active文本框传递给txtOne。我试着称之为
NewFunction(ActiveControl.Name)
但这表示无效的论点。请有人帮我解决这个问题吗?
由于
答案 0 :(得分:1)
你几乎在那里,但你犯了一个错误。 当你调用你的方法时,你需要传递控件,而不是它的名字
NewFunction(ActiveControl)
现在,如果你有多个控件,多种控件,你可能会遇到问题。因此,为此,您应该执行以下操作 - 创建Control
类型的参数并添加此代码
public static void NewFunction (Control ctrl)
{
TextBox tb = ctrl as TextBox;
if (tb != null)
{
//Do Something with txtOne
}
}
答案 1 :(得分:0)
这是因为ActiveControl.Name
属性是string
的类型。您应该将ActiveControl
转换为TextBox
类型的值,并将此值传递给您的函数
这是一个例子:
var textBox = ActiveControl as TextBox;
if (textBox != null)
NewFunction(textBox);