Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WindowsForm控件作为参数_C#_Winforms_Oop_Parameters - Fatal编程技术网

C# WindowsForm控件作为参数

C# WindowsForm控件作为参数,c#,winforms,oop,parameters,C#,Winforms,Oop,Parameters,我的问题很简单 我在一个类中有一个方法,我希望这个方法可以更改文本框中的文本。 TextBox在运行时可能会更改,因此我正在尝试找到传递TextBox 当我调用该方法时,将控件作为参数 这可能吗 提前谢谢。当然可以,绝对有可能。。。控件与其他控件一样是对象,因此可以将其作为参数传递或存储在变量中 void SayHello(TextBox textBox) { textBox.Text = "Hello world"; } ... SayHello(textBox1); 只是想补充

我的问题很简单

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

这可能吗


提前谢谢。

当然可以,绝对有可能。。。控件与其他控件一样是对象,因此可以将其作为参数传递或存储在变量中

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

...

SayHello(textBox1);

只是想补充一点:

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

  • 将任何引用类型(字符串除外)传递给方法时,不会对传递的对象进行克隆,对传递对象的更改将反映发送的对象。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
    }
    
    您会注意到,在Method1中,在调用Method2之后,dataset对象ds发生了更改

  • 对于上面的案例2,要应用值类型,请将参数传递为ref

      void Method2(ref int count)
      {
           count = count++;
      }
    
    这里,如果您将任何整数传递给此方法,则传递的整数将导致更改


  • 如果要将控件用作类中的参数,则需要在顶部使用它们的名称空间 例如,

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

    “如果你自己先尝试一下,似乎会更有效率。”艾德说。如果我没有,我就不会问我的问题了here@PhaDaPhunk然后请告诉我们您尝试了什么(示例代码?),以及尝试时出现了什么问题。将文本框传递给方法是一件相当简单的事情,因此很难想象会出现什么问题。那么,为什么不发布您尝试过的内容呢?
    TextBox
    是一个类似于其他对象的对象,因此如果您知道如何声明一个接受参数的方法,那么您应该能够声明一个接受
    TextBox
    作为参数的方法。问题是,你在这里缺乏信息。具体点。说“它不起作用”之类的话从来没有帮助过。我遗漏了一个Include语句,我认为我已经声明了这些对象,这就是为什么它不起作用,这就是为什么我问自己是否有可能这样做。我不能说,也许是我遗漏了一个包含声明?否则我会自己回答我的问题。这是我的第一个猜测,但它不起作用。我需要在上面包括什么?我现在正在使用这个系统;使用System.Collections.Generic;使用System.Linq;使用系统文本;使用System.IO;您必须导入
    System.Windows.Forms
    ,因为它是声明
    文本框
    类的地方,这是我缺少的部分,非常感谢!我是新手,对不起。