Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Одинаковые ИМЕНА???? Добавлено: 25.04.08 00:10  

Автор вопроса:  __Pavel__ | Web-сайт: ммм.сайта.НЕТ
Доброго времени суток!
Что-то я запутался... объясните мне, почему можно программно добавлять в TabControl контроллы (на разные вкладки) и вкладки с одинаковыми именами, когда в конструкторе это запрещено???

И еще... есть ли у контролов свойство с индивидуальным значением? Как я вижу, ИМЯ таковым не является =)

Спасибо ...

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #1 Добавлено: 25.04.08 06:42
.Tag

Ответить

Номер ответа: 2
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #2
Добавлено: 25.04.08 12:21
я выводил Tag через MsgBox ... там пусто!

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 25.04.08 14:15
Сначала присвой .Tag'у что нибудь, а потом выводи. Или о каком индивидуальном значении ты говоришь? Может, Handle?

Ответить

Номер ответа: 4
Автор ответа:
 __Pavel__



Вопросов: 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
Автор ответа:
 fluke



ICQ: 318170731 

Вопросов: 15
Ответов: 96
 Профиль | | #5 Добавлено: 25.04.08 16:27
TabPages - это коллекция, следовательно
TabPages(Index) - конкретный элемент этой коллекции, где Index и будет уникальное свойство

Ответить

Номер ответа: 6
Автор ответа:
 fluke



ICQ: 318170731 

Вопросов: 15
Ответов: 96
 Профиль | | #6 Добавлено: 25.04.08 16:30
TabPages(Index).Controls - это коллекция контролов, TabPages(Index).Controls(IndexControl) - IndexControl и есть уникальное свойство

Ответить

Номер ответа: 7
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #7
Добавлено: 25.04.08 16:30
я знаю что у вкладок есть уникальные индексы... это понятно... а у других контролов (кнопок, полей, надписей и т.д.)???

Ответить

Номер ответа: 8
Автор ответа:
 fluke



ICQ: 318170731 

Вопросов: 15
Ответов: 96
 Профиль | | #8 Добавлено: 25.04.08 16:41
конкретная вкладка, у нее есть коллекция Controls, в которую происходит добавление контролов. следовательно у каждого элемента - есть свой уникальный индекс. Почему в режиме конструктора нельзя задать контролы с одинаковым именем, причин несколько, одна из них: конструктор формирует обработчик событий. а следовательно, что бы ты мог отрыть процедуру обработки этого события у контролов должны быть уникальные имена.

Ответить

Номер ответа: 9
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #9
Добавлено: 25.04.08 16:47
если чесно то я тоже, что-то типа этого подозревал...
Все, всем спасибо!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам