Windows窗体控件作为参数

时间:2012-04-11 22:00:30

标签: c# winforms oop parameters

我的问题很简单。

我在一个类中有一个方法,我希望这个方法改变TextBox中的文本。 TextBox可能会在运行时更改,因此我正在尝试找到一种方法来传递TextBox 当我调用方法时控制为参数。

这甚至可能吗?

提前致谢。

3 个答案:

答案 0 :(得分:5)

是的,当然,绝对可能......控件就像任何其他对象一样,所以它可以作为参数传递或存储在变量中

void SayHello(TextBox textBox)
{
    textBox.Text = "Hello world";
}

...

SayHello(textBox1);

答案 1 :(得分:2)

只是为此添加更多内容:

  1. 您可以将任何类,接口,委托,结构作为参数传递给方法。在您的场景中,TextBox是一个类,因此您可以将其作为参数传递给方法。

  2. 当您将任何引用类型(字符串除外)传递给Method时,不会对传递的对象进行克隆,对传递的对象的更改将反映已发送的对象。 e,g:

    void  Method1 ()
    {
     DataSet ds = new DataSet();
     ..do some opeartion on ds.....          
     Method2(ds);
     ..print details of ds
    }
    
    Method2(DataSet myds)
    {
     ..do something to ds
    }
    

    您会注意到,在调用Method2之后,在Method1中,数据集对象ds已更改。

  3. 对于上面的案例编号2申请值类型,请将参数传递为 ref

      void Method2(ref int count)
      {
           count = count++;
      }
    

    此处如果将任何整数传递给此方法,则传递的整数将导致更改。

答案 2 :(得分:0)

如果要将控件用作类中的参数,则需要在顶部使用其命名空间 例如;

using System.Windows.Forms;

namespace myprojectnamespace
{
    class myClass
    {
        public void myMethod(TextBox mytex, RichTextBox searchStr)
        {
          // ..Codes Here
        }
}