Страница: 1 |
Вопрос: Одинаковые ИМЕНА???? | Добавлено: 25.04.08 00:10 |
Автор вопроса: ![]() |
Доброго времени суток!
Что-то я запутался... объясните мне, почему можно программно добавлять в TabControl контроллы (на разные вкладки) и вкладки с одинаковыми именами, когда в конструкторе это запрещено??? И еще... есть ли у контролов свойство с индивидуальным значением? Как я вижу, ИМЯ таковым не является =) Спасибо ... |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 295 |
Профиль | Цитата | #1 | Добавлено: 25.04.08 06:42 |
.Tag
|
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 29 Ответов: 284 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 25.04.08 12:21 |
я выводил Tag через MsgBox ... там пусто! |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #3 | Добавлено: 25.04.08 14:15 |
Сначала присвой .Tag'у что нибудь, а потом выводи. Или о каком индивидуальном значении ты говоришь? Может, Handle? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 29 Ответов: 284 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 25.04.08 15:21 |
мне нужно свойство которое генерируется автоматически... такое ведь должно быть!
Вот пример кода, киньте на форму ТабКонтрол и 2 кнопки (куда угодно... они сами при загрузке выравняются), вот код: Dim N As Integer = 1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TabControl1.TabPages.Add(1, "Новая вкладка" & N) For sss = 1 To 10 Dim lbl As New Label lbl.Name = "lbl" & sss lbl.Text = Rnd() * 1000 lbl.AutoSize = True lbl.Location = New Point(8, 4 + 18 * (sss - 1)) TabControl1.TabPages(TabControl1.TabPages.Count - 1).Controls.Add(lbl) Next N += 1 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim txt As String txt = "Данные на вкладке " & TabControl1.SelectedTab.Text & ":" For sss = 1 To 10 txt &= vbCrLf & TabControl1.SelectedTab.Controls("lbl" & sss).Name & vbTab & TabControl1.SelectedTab.Controls("lbl" & sss).Text Next MsgBox(txt) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TabControl1.Width = 285 TabControl1.Height = 211 TabControl1.Location = New Point(12, 12) TabControl1.TabPages.Clear() Button1.Text = "Добавить вкладку" Button1.Width = 139 Button1.Height = 27 Button1.Location = New Point(10, 227) Button2.Text = "Посмотреть данные" Button2.Width = 139 Button2.Height = 27 Button2.Location = New Point(157, 227) AddHandler Button1.Click, AddressOf Button1_Click AddHandler Button2.Click, AddressOf Button2_Click End Sub нажмите на кнопку 1 несколько раз, появятся вкладки с одинаковыми контролами, причем вкладки имеют тоже одинаковые имена! как это возможно? значит студия как-то их различает... значит есть индивидуальное свойство! |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 318170731 Вопросов: 15 Ответов: 96 |
Профиль | Цитата | #5 | Добавлено: 25.04.08 16:27 |
TabPages - это коллекция, следовательно
TabPages(Index) - конкретный элемент этой коллекции, где Index и будет уникальное свойство |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 318170731 Вопросов: 15 Ответов: 96 |
Профиль | Цитата | #6 | Добавлено: 25.04.08 16:30 |
TabPages(Index).Controls - это коллекция контролов, TabPages(Index).Controls(IndexControl) - IndexControl и есть уникальное свойство |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 29 Ответов: 284 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 25.04.08 16:30 |
я знаю что у вкладок есть уникальные индексы... это понятно... а у других контролов (кнопок, полей, надписей и т.д.)??? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 318170731 Вопросов: 15 Ответов: 96 |
Профиль | Цитата | #8 | Добавлено: 25.04.08 16:41 |
конкретная вкладка, у нее есть коллекция Controls, в которую происходит добавление контролов. следовательно у каждого элемента - есть свой уникальный индекс. Почему в режиме конструктора нельзя задать контролы с одинаковым именем, причин несколько, одна из них: конструктор формирует обработчик событий. а следовательно, что бы ты мог отрыть процедуру обработки этого события у контролов должны быть уникальные имена. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 29 Ответов: 284 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 25.04.08 16:47 |
если чесно то я тоже, что-то типа этого подозревал...
Все, всем спасибо! |
Страница: 1 |
|