Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для es_
217 / 216 / 114
Регистрация: 14.01.2013
Сообщений: 459

Управление компонентами формы из Main()

03.07.2013, 14:21. Показов 2445. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Объясните плз как можно в static void Main() управлять элементами формы и добавлять их.
Прочитал вот тут: http://msdn.microsoft.com/ru-r... -snippet-4
Как создать метод добавления на форму элемента - компилятор не ругается, но и не добавляет никаких элементов
Вот мой Program.cs из проекта
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;
 
namespace excel
{
    public partial class Form1 : Form
    {
        //private System.Windows.Forms.Form From12;
        //private System.Windows.Forms.Label Console12;   
        public void AddMyControls()
        {
            Label label135 = new Label();
            label135.Text = "ДЖИГУРДА";
            label135.Location = new System.Drawing.Point(31, 105);
            label135.Size = new System.Drawing.Size(45, 13);
            Controls.Add(label135);
            ResumeLayout(false);
            PerformLayout();
        }
        public class Program
        {
            /// <summary>
            /// Главная точка входа для приложения.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
                Form1 form = new Form1();
                form.AddMyControls();
                Thread t = new Thread(form.AddMyControls);
                t.Start();
 
            }
        }
    }
}
Соответственно есть ещё Form1.cs и Form1.Designer.cs где много всего.
Пробовал также
C#
1
form.button1.Text = form.button1.Text + "ололо";
Текст кнопки не меняется.
Интуиция подсказывает, что обновление компонентов происходит позже Main() и поэтому я не вижу измененный текст кнопки и ни добавленный Лейбл на форму, так как формирование коллекции компонентов происходит позже.
Но с другой стороны ведь
C#
1
Application.Run(new Form1());
Запускает приложение с Form1 с уже установленными параметрами. В общем я запутался.. подскажите плиз, как мне можно управлять в Маине элементами формы, просто я хочу управлять в отдельном потоке, например, Лейблом, но если я пытаюсь это сделать в Form1.cs, то
Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "Label1" не из того потока, в котором он был создан.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.07.2013, 14:21
Ответы с готовыми решениями:

Управление компонентами формы в зависимости от выбора в ComboBox
День добрый! Сразу к вопросу. После запуска программы, появляется окно с вводом данных(Form1), на окне присутствует ComboBox1(в нем...

Из main вызвать две задачи, при этом сразу вернуть управление в main
Не нашел нигде.. гугл не помог (отчасти только). Вопрос такой, есть консольное приложение. Код main static void Main() { ...

Управление компонентами Windows
Возможно ли запустить какие либо компоненты windows (к примеру Telnet-сервер , Telnet клиент) из Панель управления -&gt; Программы и...

2
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
03.07.2013, 14:59
У вас создается две формы(думаете найдете где именно?). Показывается одна, а вы меняете у другой.
1
 Аватар для es_
217 / 216 / 114
Регистрация: 14.01.2013
Сообщений: 459
03.07.2013, 15:16  [ТС]
ммм.. Понятно.
Вот сделал так: Создаю Форму одну в главном потоке и делаю изменения в нём же, а запускаю приложение в отдельном потоке, тогда всё работает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;
 
namespace excel
{
    public partial class Form1 : Form
    {
        //private System.Windows.Forms.Form From12;
        //private System.Windows.Forms.Label Console12;   
        public void AddMyControls()
        {
            Label label135 = new Label();
            label135.Text = "ДЖИГУРДА";
            label135.Location = new System.Drawing.Point(31, 105);
            label135.Size = new System.Drawing.Size(45, 13);
            Controls.Add(label135);
            ResumeLayout(false);
            PerformLayout();
        }
        public class Program
        {
            /// <summary>
            /// Главная точка входа для приложения.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Form1 form = new Form1();
                Thread t1 = new Thread(delegate() {  Application.Run(form); });
                t1.Start();
                form.Console1.Text = "!!!!dfjhdsjd";
                form.AddMyControls();
 
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.07.2013, 15:16
Помогаю со студенческими работами здесь

Управление компонентами с pagecontrol
Делаю текст. редактор и не понимаю как записать/брать инфу с memo с активной вкладки..например, сохранить или открыть, как сохранить текст...

Динамическое управление компонентами
Пример: Есть форма1 и форма2. Форма1: Компоненты: Окно &quot;мемо&quot; для ввода числа и кнопка. Работа: При нажатии на кнопку...

Массовое управление несколькими компонентами
Ув. знатоки, подскажите, можно ли управлять несколькими компонентами одновременно? А именно: К примеру есть несколько checkBox и кнопка...

Программное управление компонентами на форме
Если мне требуется поменять видимость допустим RadioButton которых у меня очень много 35 шт и я буду прописывать каждый раз...

Самостоятельное управление компонентами на панели
Всем привет. Задача такая: в одной из частей JSplitPane находится JScrollPane, где должны отображаться различные элементы, в зависимости от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru