Рейтинг:
8
Sandeep Mewara
Если вы ищете определенное местоположение, используйте: FormStartPosition Enum (System.Окна.Формы) | Microsoft Docs[^]
Одним из перечислений является инструкция[^] для расположения точки:
Public Sub New()
InitializeComponent()
Me.StartPosition = FormStartPosition.Manual
Me.Location = New Point(0, 0)
End Sub
Что касается связи между ребенком и родителем, то вы можете использовать несколько способов - обратный вызов, делегаты, свойства.
Рейтинг:
14
OriginalGriff
Попробуйте установить местоположение перед звонком Show
, и убедитесь, что место, в которое вы его устанавливаете, находится относительно экрана, а не существующей формы. Если вы хотите, чтобы он был привязан к форме, вам нужно добавить верхние левые координаты этой формы к местоположению дочернего элемента управления, прежде чем устанавливать его.
Но имейте в виду, что это, вероятно, не будет работать так, как вы хотите - Show не является модальным вызовом, поэтому, если пользователь нажмет в любом месте вашей исходной формы, новая форма потеряет фокус и будет скрыта за первой.
Скорее всего, вы хотите использовать UserControl вместо формы, если хотите, чтобы он охватывал элементы управления в вашей существующей форме.
Jo_vb.net
Я рад получить ответы, но мне интересно, почему мой вопрос не появляется на главной странице CP?
Me.childView-это UserControl, но он работает не так, как мне бы хотелось.
Части моего демо-проекта взяты из статей CP о Master/Detail GridViews.
Но у большинства из них есть проблема с клавишами, не работающими на childView - это предотвращает перемещение по дочерней сетке с помощью клавиш со стрелками.
То же самое происходит с клавишами page up/down и pos1/end.
Вместо навигации по childView эти клавиши позволяют перемещаться по основной/родительской форме.
Есть только один без этой проблемы - но в C#, и я не понимаю, как эта проблема там исправлена:
https://www.codeproject.com/Tips/1215736/Master-Detail-Datagridview-in-Csharp
Вот почему я стараюсь делать детали с моей собственной подформой.
OriginalGriff
Он есть: он находится под "вопросами" с правой стороны, в настоящее время Второй сверху.
Если вы смотрите на главную страницу QA, Проверьте свои фильтры (справа) и вкладку, которую вы просматриваете (вверху слева).
Jo_vb.net
Хорошо, когда фильтр-это все, что он появляется.
когда фильтр .NET, он не появляется.
OriginalGriff
Потому что ваш вопрос помечен как "VB.NET" & "WinForms.Net" only. ".NET" - это совершенно другой тег.
Jo_vb.net
Порядок строк кода не изменяет результирующее смещение между позицией Me.childView и позицией Субформы.
Когда я добавляю MainForm.Location + Me.childView.Расположение тогда смещение меньше и размер в порядке, но подформа охватывает только части элемента управления Me.childView.
Вот что у меня сейчас есть:
Подчиненная форма.Показать()
Подчиненная форма.BringToFront()
Подчиненная форма.Размер = Меня.файле childview.Размер
Подчиненная форма.Расположение = Новая Точка(Форму Mainform.Расположение + Меня.файле childview.Местоположение)