powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Найти textbox в Controls
23 сообщений из 23, страница 1 из 1
Найти textbox в Controls
    #39282169
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В VB искал textbox следующим способом:
Код: vbnet
1.
Dim TextBox1 As TextBox = Me.SplitContainer2.Panel1.Controls("textbox1_16")


Как можно это реализовать в C#?
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282200
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282209
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,
А чего так сложно??? Одной строкой никак?
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282222
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Karlus,=>dev/null
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282233
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
KarlusГде-то в степи,
А чего так сложно??? Одной строкой никак?

Код: c#
1.
Control c = this.splitContainer1.Panel1.Controls.Find("TextBox1", true)[0];



или еще проще

Код: c#
1.
Control c = this.Controls.Find("TextBox1", true)[0];
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282234
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
TextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"];

только имхо, это бред какой-то.
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282237
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
fortibransa
Код: c#
1.
TextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"];


только имхо, это бред какой-то.
Ага
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282435
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,

Но это же вернет массив, хотя там и будет только один объект.
А правильно как предложил Где-то в степи ?
авторTextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"];
Так не работает.
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282467
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KarlusCat2,

Но это же вернет массив, хотя там и будет только один объект.
А правильно как предложил Где-то в степи ?
авторTextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"];
Так не работает.

Код: c#
1.
TextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"][0];
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282483
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фиганыч,
выдает ошибку:
Невозможно применить индексирование через [] к выражению типа "System.Windows.Forms.Control"
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282490
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Karlus,

Код: c#
1.
2.
3.
Control Textbox = this.splitContainer2.Panel1.Controls.Find("textbox1_16", true).SingleOrDefault();
            if (Textbox == null)
                Console.WriteLine("ne nashel takogo");
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282513
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фиганыч,
Спасибо огромное. Так заработало
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282533
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
KarlusCat2,

Но это же вернет массив, хотя там и будет только один объект.
А правильно как предложил Где-то в степи ?
авторTextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"];
Так не работает.
Естественно. У меня в примере - Control. Надо сделать приведение

Код: c#
1.
TextBox textBox1 = (TextBox)this.splitContainer2.panel1.Controls["textbox1_16"]
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282536
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Cat2
Код: c#
1.
TextBox textBox1 = (TextBox)this.splitContainer2.panel1.Controls["textbox1_16"]



Cat2
Код: c#
1.
TextBox textBox1 = (TextBox)this.splitContainer2.panel1.Controls["textbox1_16"][0]
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282543
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,
Спасибо, так заработало. Вот только интересно, при наличии двух объектов с одним именем метод фиганыча выдает ошибку. а метод Cat2 не выдает.
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282569
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Karlus,

У фиганыча надо заменить SingleOrDefault() на FirstOrDefault()
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282574
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,

Спасибо. А какой вообще подход лучше? Или они равнозначны?
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282628
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
KarlusCat2,

Спасибо. А какой вообще подход лучше? Или они равнозначны?

У фиганыча, пожалуй, лучше. Его способ гарантировано что-то вернет: или контрол, или нул.
У меня же сначала надо проверить, не равна ли 0 длина массива?

А зачем Вы вообще ищете контролы по именам и почему у Вас может получиться два контрола с одинаковым именем?
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282645
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,
Два контрола с одинаковым именем это ошибка. Я в коде не зачистил коллекцию перед созданием.
Вообще я динамически создаю объекты на форме. Мне потом нужно находить эти объекты чтобы обрабатывать их значения или заполнять их. Допустим при нажатии button1 я создаю textbox1, а потом при нажатии button2, я считываю значение из textbox1.
Может подскажете другой способ? Создание объектов на форме в дизайнере мне не подходит.
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282692
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
KarlusСоздание объектов на форме в дизайнере мне не подходит.
Можно создаваемые контролы сразу заносить в Dictionary или сделать свой класс и List на его основе
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282739
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,
Я так и не смог понять зачем вносить Dictionary, если объект находится в коллекции. После выполнения определенных действий на форме, я очищаю коллекцию. Получается, если заносить объекты в Dictionary, то это просто дублирование записи об объекте. Может только удобней пользоваться, хотя лишний код.
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282748
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Karlus,

Из своего словаря проще по имени доставать
...
Рейтинг: 0 / 0
Найти textbox в Controls
    #39282894
Karlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,
Спасибо за консультацию. Буду пробовать и ваш вариант, может действительно будет удобнее
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Найти textbox в Controls
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]