Страница: 1 |
Страница: 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
Номер ответа: 2
Автор ответа:
ДенисЧ
Вопросов: 25
Ответов: 32
Профиль | | #2
Добавлено: 22.02.07 09:21
Спасибо, но это работает тока если lbl10 есть на Form2 изначально, а как быть если lbl10 создается, как я и писал, в процессе инициализации.
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 22.02.07 18:31
''' 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