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


Как можно это реализовать в C#?
...
Рейтинг: 0 / 0
28.07.2016, 19:41
    #39282200
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
...
Рейтинг: 0 / 0
28.07.2016, 20:01
    #39282209
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
Где-то в степи,
А чего так сложно??? Одной строкой никак?
...
Рейтинг: 0 / 0
28.07.2016, 20:25
    #39282222
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
Karlus,=>dev/null
...
Рейтинг: 0 / 0
28.07.2016, 20:48
    #39282233
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
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
28.07.2016, 20:50
    #39282234
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
Код: c#
1.
TextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"];

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


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

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

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

Код: c#
1.
TextBox textBox1 = this.splitContainer2.panel1.Controls["textbox1_16"][0];
...
Рейтинг: 0 / 0
29.07.2016, 10:30
    #39282483
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
фиганыч,
выдает ошибку:
Невозможно применить индексирование через [] к выражению типа "System.Windows.Forms.Control"
...
Рейтинг: 0 / 0
29.07.2016, 10:35
    #39282490
фиганыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
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
29.07.2016, 10:55
    #39282513
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
фиганыч,
Спасибо огромное. Так заработало
...
Рейтинг: 0 / 0
29.07.2016, 11:09
    #39282533
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти textbox в Controls
KarlusCat2,

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

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

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

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

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

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

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

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


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