2012-04-11 3 views
1

Мой вопрос прост.Управление WindowsForm как параметр

У меня есть метод внутри класса, и я хочу, чтобы этот метод менял текст в TextBox. TextBox может меняться во время работы, поэтому я пытаюсь найти способ передать в качестве параметра параметр TextBox в качестве параметра при вызове метода.

Возможно ли это?

Заранее благодарен.

+1

Похоже, что было бы более эффективно просто попробовать его сначала по своему усмотрению. –

+0

@ Ed S Я сделал. если бы я этого не сделал, я бы не задал свой вопрос здесь – phadaphunk

+1

@PhaDaPhunk Тогда, пожалуйста, сообщите нам, что вы пробовали (пример кода?), и что пошло не так, когда вы его попробовали. Достаточно просто передать текстовое поле методу, поэтому трудно представить, что могло бы пойти не так. – phoog

ответ

4

Да, конечно, это абсолютно возможно ... управления является объектом, как и любой другой, так что он может быть передан в качестве параметра или хранится в переменной

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

... 

SayHello(textBox1); 
+0

Это было мое первое предположение, но оно не работает. Что мне нужно включить сверху? Я имею их прямо сейчас используя Систему; Использование System.Collections.Generic; с использованием System.Linq; с использованием System.Text; с использованием System.IO; – phadaphunk

+0

Вы должны импортировать 'System.Windows.Forms', так как там объявлен класс' TextBox'. –

+0

. Это та часть, которую я очень скучал. Я новичок в этом. – phadaphunk

2

Просто, чтобы добавить немного больше к этому :

  1. Вы можете передавать любые класс, интерфейс, делегат, структура к методу в качестве параметра. В вашем сценарии TextBox - это класс, поэтому вы можете передать его методу в качестве параметра.

  2. Когда вы передаете какой-либо ссылочный тип (кроме строки) в метод, клонирование переданного объекта не производится, а изменения переданного объекта отражают отправленный объект. е, г:

    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 объектные дц набора данных изменяется.

  3. Для случая № 2 выше, применяется для типов значений, передавать параметры, как исх:

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

    Здесь, если вы передаете любое целое число к этому методу, то прошло целое приведет к изменению.

0

Если вы хотите использовать элементы управления в качестве аргумента в классе, необходимо использовать их имена на верхние , такие как;

using System.Windows.Forms; 

namespace myprojectnamespace 
{ 
    class myClass 
    { 
     public void myMethod(TextBox mytex, RichTextBox searchStr) 
     { 
      // ..Codes Here 
     } 
} 
Смежные вопросы