Windows forms получить элемент

Управление одной формой из другой

Иногда бывает нужно обратиться к элементам какой-то формы из другой в процессе выполнения программы. Например, есть форма Form1, из нее мы открываем другую Form2 и теперь, работая в форме Form2 нужно обратиться, получить доступ к элементам родительской формы Form1. Я нашел несколько способов как это сделать.

1-й способ. Передача ссылки в public переменную.

Перед открытием формы, передаем ссылку на нужный элемент в переменную public вызываемой формы.

В форме Form2 переменная, в которую передавали ссылку, будет теперь соответствовать кнопке button1 из формы Form1

2-й способ. Передача ссылки в дочернюю форму.

Суть примерна та же, то и в 1-м способе. При открытии формы Form2 передаем в нее ссылку на элемент, который планируем потом менять.

Теперь в форме Form2 нужно создать переменную, которая будет содержать ссылку на эту кнопку и через нее будем обращаться к кнопке на Form1 (строки 5,7,9 и 15).

3-й способ. Доступ ко всей родительской форме.

Чтобы осуществить это, нужно внести изменения в нескольких файлах, но зато при этом получим доступ ко всем элементам родительской формы и не нужно передавать ссылку на каждый элемент, как в 1-м способе.

Шаг 1. В файле Program.cs создаем публичную переменную f1 (строка 5).

Шаг 2. Открываем Form1.Designer.cs и в нем у элементов, к которым нужно будет обратиться из другой формы, меняем private на public . Например, сделаем доступной для изменений кнопку button1 на форме Form1.

Шаг 3. При создании формы Form1 присваиваем переменной f1 ссылку на эту форму (строка 7)

Как получить доступ к элементам Form1 из другого класса

Здравствуйте! Нахожусь в начальных этапах обучения языку C# и конечно возникло много вопросов, часть из которых я решил сам. Буду признателен, если подскажите как получить доступ к элементам формы, для дальнейшего взаимодействия с ними.

Моя программа выполняет GET запрос, при создании потока. Хотел, после получения некоторых данных выводить их в процессе выполнения потока. Но увы, не понимаю как это сделать.

Как получить доступ к элементам формы из другого обычного класса (не из второй формы)
Сабж. В гугле вся инфа только про доступ из другой формы, это я знаю. А вот как получить доступ из.

Читайте также:  Как узнать hostid mac os

Классы С++, получить доступ из одного класса к элементам другого
Здравствуйте! Объясните пожалуйста, вот имеется у меня два класса,например вот такие: Class A.

Как получить доступ к элементам UserControl из класса?
Это стол рулетки (UserControl), мне нужно каждому квадратику (Lable) задать цвет (красный,черный).

Как получить доступ к элементам формы из созданного класса?
Всем доброго времени суток!:help: Скажите, пожалуйста, как мне обратиться к элементу.

На форме кнопка и текстовое поле.

Добавлено через 8 минут
ingushmen, вариант 2, через событие.

MaxValue, делаю так.

Но, что-то не получается. Делаю так.

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

Есть класс: func.cs

Есть глоб. переменная public static string Token.

Так же функция которая пихает в textBox1 этот Token:

insite2012, есть переменная та, «Token». Которая может применяться как для Form1, так и для других функций. (Я просто перехожу с Delphi на C#, могу ошибаться в некоторых случаях).

Как я писал есть func.cs, содержит примерно такой код:

А Form1.cs событие Button1_click выполняет код создания потока. Который выполнил, GET запрос за и прочие действия, в процессе выполнения потока, чтобы пихал Токен и выполня другие действия.

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

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

Доступ к элементам формы из другого класса
Приветствую, в классе Form1.cs находятся элементы формы. Так же есть класс Doing.cs, в котором.

Доступ к элементам формы из другого класса C#
Всем доброго времени суток!) Возник вопрос, как получить доступ к элементам пользовательского.

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

Доступ к элементам формы из другого потока

Хочу сделать в фоновом потоке добавление UserControl в StackPanel.

Но тогда экземпляр класса UserControl не создать потомучто вызывающий поток должен быть STA.
Задаю потоку состояние STA:

Возникает другая проблема в строке:

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

Доступ к элементам формы из другого класса/Потока
Здравствуйте, у меня есть класс работы потоков, при выполнении метода (В потоке) должна идти запись.

Читайте также:  Race driver grid для windows

Доступ к bitmap и элементам формы из другого потока. Вычисление площади произвольной фигуры
Делаю программу для демонстрации вычисления площади произвольной фигуры различными методами.

Обращение к элементам формы из другого потока
Короче говоря многопоточность это моя слабость. Сколько статей перечитал уже, один хрен не пойму.

пример вивода текста в лейбл с разных потоков

Вложения

Threads.rar (56.3 Кб, 62 просмотров)

Добавлено через 11 минут
у меня 8-я студия, я не конвертну с 10-ой.

создай делегата, перед инициализацией delegate void TextDelegate(UserControl1 us);

вот добавление значений в stackPanel1 с разных потоков.

а чтоб использовать в коде программы добавление в stackPanel, пишешь в таком формате:

Вложения

Threads.rar (58.2 Кб, 40 просмотров)

Решение

Вложения

example.rar (36.9 Кб, 825 просмотров)

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

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

Как получить доступ к элементам формы из другого обычного класса (не из второй формы)
Сабж. В гугле вся инфа только про доступ из другой формы, это я знаю. А вот как получить доступ из.

Доступ к элементам формы из другого класса
Приветствую, в классе Form1.cs находятся элементы формы. Так же есть класс Doing.cs, в котором.

Доступ к элементам формы из другого класса C#
Всем доброго времени суток!) Возник вопрос, как получить доступ к элементам пользовательского.

Доступ к элементу другой формы

Доступ к объекту другой формы
Есть 2 формы. Form1.h и Form2.h. На Form1.h есть CheckBox1, на Form2.h есть CheckBox2. Нужно.

Доступ из одной формы к элементам другой
Всем Привет. Я создал главную форму Form1. И вот так создал дочернюю форму Form2 .

Доступ к свойствам инструмента другой формы
Пишу на С++ в Visual Studio. Есть две формы Form1 и Form2, Form2 вызывается из Form1, тут всё в.

Ошибка 2227, как получить доступ к компонентам другой формы?
В Form2.h прописан следующий код String^ text; Form1^ f=gcnew Form1(); .

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

Доступ к элементу из другой формы
Как изменить свойство пункту contextmenustrip? делаю так, не получается General general = new.

Доступ к элементу одной формы из другой формы
Здравствуйте. Есть Form2, в конструктор которой как Owner передаётся Form1. В ходе работы Form2.

Как получить доступ к элементу одной формы из другой?
Имеется две формы, Form1, Form2. Создается экземпляр второй формы, открывается. Мне нужно.

Читайте также:  Windows surface book pro

Как из дочерней формы получить доступ к элементу управления родительской формы
Есть две формы: родительская(Form1) и дочерняя(Form2). В родительской форме(Form1) находятся.

Доступ к элементу формы
Доброго времени суток. Происходит что-то странное при доступе к plainText. В MainWindow помещен.

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

Как программно получить все элементы из формы?

Передо мной встала задача получить все элементы в форме, включая меню и строку состояния и другие у которых имеется свойство Text . Так как у каждого контрола имеется свойство Controls (и у формы соответственно тоже), то я могу использовать нижеприведённый код для получения всех контролов формы и их потомков:

Проблема заключается в том, что у меню не имеется свойства Controls и для доступа к дочерним элементам необходимо использовать свойство Items. На данный момент не нашёл ничего другого, как проверять тип. Можно ли каким либо образом единообразно получать доступ ко всем элементам формы включая дочерние?

2 ответа 2

Свойство Items содержит элементы типа ToolStripItem, а не Control. Они не унаследованы друг от друга, поэтому невозможно добавить тулстрипайтем в последовательность контролов.

Общим непосредственным предком этих классов является Component, у которого нет свойства Text . Ни один из интерфейсов, которые они реализуют, тоже не имеет такого свойства. Поэтому в лоб ваша задача не решается.

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

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

Здесь мы получаем последовательность типа Component , хотя с таким же успехом это могут быть object — в любом случае далее придётся проверять их тип.

Можно избежать ручной проверки типов, используя dynamic :

Это более-менее рабочий код, но остаётся много вопросов. Например, ToolStrip может содержать ToolStripDropDownButton, который не имеет свойства Items , но имеет DropDownItems . Сильно подозреваю, что по ним вы тоже хотели бы пройтись.

Всё это наводит на мысли, что вы не с той стороны подходите к решению некоей своей проблемы.

А вообще, я бы сделал два (или больше, с учётом DropDown ов) метода, один из которых возвращал бы Control , другой ToolStripItem , третий — ToolStripDropDownItem .

Оцените статью