如何将Active控件转换为文本框类型?

时间:2014-12-25 03:02:07

标签: c# .net visual-studio-2012

我有这样的功能:

public static void NewFunction (TextBox txtOne)
{
  //Do Something with txtOne
}

现在我想将当前的Active文本框传递给txtOne。我试着称之为

NewFunction(ActiveControl.Name)

但这表示无效的论点。请有人帮我解决这个问题吗?

由于

2 个答案:

答案 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);
相关问题