Привет, у меня есть форма, которая вызывается несколькими другими формами с помощью команды showdialog(). Я бы хотел, чтобы он делал разные вещи в зависимости от того, из какой формы он вызывается.
поэтому мне нужно получить имя родительской формы. Я пытаюсь использовать Me.Parent.Name или Me.Owner.Name и всегда ничего не получаю.
как я могу получить форму отца, которая вызвала команду showdialog?
Родителя нет. Это актуально только для дочерних элементов управления. Если вы добавите Button
к форме, форма станет родительской для Button
. Ваша форма, как и большинство других, является окном верхнего уровня, поэтому у нее нет родителя.
Нет владельца, если вы его не укажете. Способ сделать это - передать владельца, когда вы звоните ShowDialog
, т.е.
Using dialogue As New DialogueForm
dialogue.ShowDialog(Me)
End Using
После этого диалог сможет получить доступ к форме вызова через свойство Owner
.
Обратите внимание, что вас должен интересовать не Name
владельца, а его тип, например.
Dim ownerType = Owner.GetType()
If ownerType Is GetType(Form1) Then
'...
End If
@GuidoM., комментарии к ответу - не место, чтобы задавать новый вопрос. Если у вас есть вопрос, опубликуйте новый вопрос.
Как я могу передать переменную Form1..Form2..Form3 в datagridview? Dim ownerType = Owner.GetType() Dim id As Integer = ownerType.name.DataGridView1.CurrentRow.Cells(0).Value.ToString