Запись в текстовое поле на отдельной форме (C #) - PullRequest
2 голосов
/ 15 июня 2011

Предположим, у меня есть две формы: Form1 и Form2.У Form2 есть текстовый элемент управления с именем text1

. В VB6 я мог написать в текстовое поле формы 2

элемент управления из Form1, используя: Form2.Text1.text = "Some text here"

Как я могу сделать эту работу в C #?Я перепробовал все!

Что я пробовал:

Form2 Frm2 = new Form2();
Frm2.show();
Frm2.Activate(); // Trying everything to make sure it sees the form (it does).

Frm2.Text1 (Doesn't find the control)...

ОТВЕТ:

Я закончил публичной рутиной в Form2, изатем просто вызывая эту процедуру из form1.В этой публичной процедуре Form2 я бы назвал текстовое поле!

Ответы [ 4 ]

2 голосов
/ 15 июня 2011

Я считаю, что все элементы формы по умолчанию являются закрытыми. Поэтому вам придется переключить их определение на public (в вашем .designer.cs) или сделать общедоступным метод получения и установки для каждого текстового поля, к которому вы хотите получить доступ.

1 голос
/ 15 июня 2011

Вам необходимо сохранить ссылку на вторую форму в первой форме.

// form1 code 
// variables
Form2 myForm2;
// Form1_Loaded event handler
myForm2 = new Form2();
myForm2.Show();
// place where you want to change text on form2 from within form1
myForm2.Text1.Text = "Some text here";
0 голосов
/ 16 июня 2011

Моей целью было добавить текст в текстовое поле другой формы.У меня были Form1 и Form2.Form2 имеет элемент управления текстового поля с именем Text1.Чтобы сделать эту работу, я создал подпрограмму:

public Void WriteToText(string sData)
{
// Here is where I wrote to my textbox
Text1.text = sData;
}

Код формы 1:

Form2 Frm2 = new Form2();
Frm2.WriteToText("My Data");
0 голосов
/ 15 июня 2011

Вы должны иметь ссылку на экземпляр Form2, чтобы писать в него. Передайте ссылку на экземпляр Form2 в Form1, а затем управляйте ею так, как вы ожидаете. Вы можете передать этот экземпляр через конструктор или позже. Вы также можете сохранить ссылку на экземпляр в центральном месте. Просто убедитесь, что вы не создаете новый экземпляр Form2, когда пытаетесь получить доступ к экземпляру. Например, если вы введете следующий код в форму:

Form2 myInstance = new Form2();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...