Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как из родит. формы получить текст дочерней Добавлено: 21.02.07 17:42  

Автор вопроса:  ДенисЧ
Помогите пж. Есть родительская форма Form1 и есть дочерняя Form2. В Form2 несколько label-ов к-рые создаются в процессе инициализации Form1.

Вопрос глобальный - как ваще работать с тем шо уже есть на Form2 т.е. на другой форме - получать значения какого либо объекта (пусть это Label) искать этот объект по тексту в нем, по его имени и т.п.
Вопрос конкретный - как мне получить значение этого Label-а зная его имя или текст.

Пробовал побобно тому как написано в сообщении "Передача имени объекта в переменную", но видно шо-то не так.
пишу так

Dim lbl As Label = Me.ActiveForm.Controls.Item("lbl10")
x= lbl.Text
lbl10 пишет Nothing
Да и вообще по всячке пробовал
Научите оболтуса пж!!!!!!!!!!!!!!!!!!!!!

Ответить

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

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 21.02.07 19:33
Dim _text As String = Form2.lbl10.Text

Ответить

Номер ответа: 2
Автор ответа:
 ДенисЧ



Вопросов: 25
Ответов: 32
 Профиль | | #2 Добавлено: 22.02.07 09:21
Спасибо, но это работает тока если lbl10 есть на Form2 изначально, а как быть если lbl10 создается, как я и писал, в процессе инициализации.

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 22.02.07 18:31
''' <summary>
''' Find Control
''' </summary>
''' <remarks>EROS, VS 2005</remarks>
Public Class Form1

    Private _form2 As Form2

    Private Sub Form1_Load(ByVal sender As Object, _
                           ByVal e As System.EventArgs) _
                           Handles Me.Load
        '// Initialize form2
        _form2 = New Form2()
        _form2.Owner = Me
        _form2.StartPosition = FormStartPosition.CenterScreen
        _form2.Show()

        '// Add cotrols to form2
        For _counter As Int32 = 1 To 5
            Dim _label As New Label
            With _label
                .Name = "Label" & _counter
                .Text = "MyLabel" & _counter
                _label.AutoSize = True
                .Top = _counter * 15
            End With
            _form2.Controls.Add(_label)
        Next

        '// Find Label4 and set back color
        Dim _ctrl As Label = TryCast(getControlByName("Label4", _
                                                       GetType(Label)), _
                                      Label)

        If _ctrl IsNot Nothing Then _ctrl.BackColor = Color.Lime

    End Sub

    Public Function getControlByName(ByVal ctrlName As String, _
                                       ByVal ctrlType As Type) As Object

        '// find child control in form2
        For Each _ctrl As Control In _form2.Controls
            If _ctrl.GetType Is ctrlType Then
                If _ctrl.Name = ctrlName Then Return _ctrl
            End If
        Next

        Return Nothing

    End Function
End Class

Public Class Form2
    Inherits Form

End Class

Ответить

Страница: 1 |

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



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