|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.05.2008, 14:26 | #1 |
Форумчанин
Регистрация: 09.11.2006
Сообщений: 274
|
как поменять текст в лабел главной формы
Доброе время суток!!!
Прошу помочь в таком вопросе: ни как не могу сообразить как обратится к компоненту из другого модуля в MVStudio 2005 (c#), тоесть есть две формы (да если просто создать другое простронство имени), то я не могу понять как, к примеру, поменять текст в лабел формы2 из формы1.
Единственный приличный формат, разработанный Microsoft'ом, - format c:
Последний раз редактировалось MAcK; 03.05.2008 в 14:30. |
03.05.2008, 14:37 | #2 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
У компонента, к которому хочешь обратиться в поле Modifiers поставь public. Но это плохой тон программирования. Лучше сделай в форме где ты хочешь поменять label public метод, который это сделает и вызывай из второй формы.
Код:
|
03.05.2008, 14:46 | #3 |
Форумчанин
Регистрация: 09.11.2006
Сообщений: 274
|
Большое спасибо, но вот в делфях я просто подключаю модуль в uses ... такого в с# разве нет?
да ещё один прикол ... по примеру из книги делаю так ... создаю глобальную переменную для показа дочерней формы ... создаю ее, в мди парент ставлю ЗЗис и потом visible = true, но форма не создаётся, хотя таким же методом создал ещё одну и всё нормально (в главной есть дочерняя в которй пользователь вводит данные для подключения к серверу если успешно, то хотел в другой доченей вывести инфу о базах с сервера, так первая доч. создалась без проблем, а вторая нет)
Единственный приличный формат, разработанный Microsoft'ом, - format c:
|
03.05.2008, 14:54 | #4 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Не создается или не показывается. Если не показывается, то возможно ты забыл Show() сделать
|
04.05.2008, 15:25 | #5 |
Форумчанин
Регистрация: 09.11.2006
Сообщений: 274
|
Пробовал всё что знал, но не получается ни текст в другой форме(в данном примере в главной) поменять, ни создать вторую как дочернюю ...
Я немного разобрался: делаю так в первой дочерней --- private void button1_Click(object sender, EventArgs e) { Form1 ff = new Form1(); //главная (я то понимаю, что сдесь создаётся новый объект, но подругому не умею ) ff.tlabelchanche("Создал новый образец"); Child2 ch = new Child2(); ch.MdiParent = ff; /*если закоментировать то появится при обработки следующей строки, но не как дочерняя*/ ch.Show(); this.Hide(); //ff.chancheform(); ff.Close(); } А вот главная форма public partial class Form1 : Form { static child1 chld1 = new child1(); //static Child2 chld2 = new Child2(); public Form1() { InitializeComponent(); } public void tlabelchanche(string text) { this.toolLabel.Text = text; } private void Form1_Load(object sender, EventArgs e) { this.tlabelchanche("Выполнилась загрузка"); chld1.MdiParent = this; chld1.Show(); } public void chancheform() { /*вот сдесь не работает -- не хочет показываться в главной*/ //chld2.MdiParent = this; chld1.Hide(); //chld2.Show(); // если закоментировано, то создаётся, но не как дочерняя } } если покажите на примере как это всё сделать, буду очень благодарен
Единственный приличный формат, разработанный Microsoft'ом, - format c:
|
05.05.2008, 14:06 | #6 |
Форумчанин
Регистрация: 09.11.2006
Сообщений: 274
|
Вот ответ на часть вопроса ... создаётся вторая форма как дочерняя, а второй вопрос остаётся в силе, как поменять текст в лабел главной формы!!!
Form ff = this.ParentForm; Child2 ch = new Child2(); ch.MdiParent = ff; ch.Show(); this.Hide();
Единственный приличный формат, разработанный Microsoft'ом, - format c:
|
05.05.2008, 15:02 | #7 |
.NET-чик
Форумчанин
Регистрация: 24.03.2007
Сообщений: 569
|
Создайте делегат,
Код:
потом из второй формы вызывайте эту функцию
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок |
07.05.2008, 10:32 | #8 | |
Форумчанин
Регистрация: 09.11.2006
Сообщений: 274
|
Цитата:
Интересно получается, сам сижу и отвечаю на свои вопросы ... Нет ничего проще, и не надо ломать голову Вот что в дочерней форме: public partial class Form2 : Form { private Form1 ff; public Form2() { InitializeComponent(); } public Form2(Form1 formParent) { InitializeComponent(); ff = formParent; } private void button1_Click(object sender, EventArgs e) { ff.chancheLabel(textBox1.Text); } } Вот что в главной: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } public void chancheLabel(string s) { this.label1.Text = s; } private void toolStripButton1_Click(object sender, EventArgs e) { Form2 frm = new Form2(this); //Красота, и создаётся множество доч. форм frm.MdiParent = this; frm.Show(); } }
Единственный приличный формат, разработанный Microsoft'ом, - format c:
|
|
08.05.2008, 12:42 | #9 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как зная ProcessID получить Handle главной формы? | NikLik | Win Api | 8 | 27.08.2021 21:29 |
Проблемы с загрузкой главной страницы. | antfrolov | Помощь студентам | 2 | 05.04.2008 16:50 |
Как поставить заставку перед запуском главной формы программы? | NiganInterCOM | Общие вопросы Delphi | 2 | 22.02.2008 16:11 |
Скрытие главной формы во время работы приложения | Gorin | Общие вопросы Delphi | 7 | 23.08.2007 19:44 |
Как плавно поменять цвет формы | гера | Помощь студентам | 1 | 20.04.2007 15:35 |