Фокус группы. Работа с панелью с вертикальной прокруткой.
Всем привет,
Как я могу сфокусировать панель, расположенную намного ниже размера родительского элемента управления? Родительская Автопрокрутка имеет значение true. См. изображение ниже.
Управления
pnlControlList Panel
- Видеть ImageBox02. Это скрыто При загрузке формы. Показывается только тогда, когда стрелка вниз это щелчок. Элементы также являются панельными.picControlListView PictureBox
Чтобы diplay the pnlControlList
Пожалуйста, посмотрите на это изображение.[^]
ImageBox01 Это отображается при запуске программы. Выбранный по умолчанию элемент
Item Table
.ImageBox02 Когда вы нажали кнопку стрелка вниз в правом верхнем углу будут показаны все элементы.
ImageBox03 Именно этого я и хочу. Я просто вручную прокручиваю, чтобы отобразить
Item Table
.Примечание
Это то же самое, что и элемент управления combobox.
Создание Элементов
Dim pnl As New Panel pnl.Padding = New Padding(3, 2, 0, 0) pnl.Height = 18 pnl.Tag = node AddHandler pnl.Click, AddressOf ControlList_Click AddHandler pnl.MouseEnter, AddressOf ControlList_MouseEnter pnlControlList.Controls.Add(pnl) Dim lbl2 As New Label lbl2.Text = " " & controlStr lbl2.AutoSize = True lbl2.Dock = DockStyle.Left lbl2.Tag = fieldName & "_" & controlStr AddHandler lbl2.Click, AddressOf ControlList_Click AddHandler lbl2.MouseEnter, AddressOf ControlList_MouseEnter pnl.Controls.Add(lbl2) Dim lbl1 As New Label lbl1.Text = fieldName lbl1.AutoSize = True lbl1.Dock = DockStyle.Left lbl1.Font = New Font(lblControlListName.Font.FontFamily, lblControlListName.Font.Size, FontStyle.Bold) lbl1.Tag = fieldName & "_" & controlStr AddHandler lbl1.Click, AddressOf ControlList_Click AddHandler lbl1.MouseEnter, AddressOf ControlList_MouseEnter pnl.Controls.Add(lbl1)Обработчики некоторых элементов управления
#Region "DROPDOWN LIST" Private Sub picControlListView_Click(sender As Object, e As EventArgs) Handles picControlListView.Click If pnlControlList.Visible Then pnlControlList.Visible = False Else pnlControlList.Width = TreeView1.Width pnlControlList.Visible = True For Each c As Control In pnlControlList.Controls If c.Controls.Count > 0 Then c.Width = pnlControlList.Width - (2 + IIf(pnlControlList.VerticalScroll.Maximum = 100, 0, 23)) End If Next txtControlListFocus.Focus() End If End Sub Private Sub pnlControlListView_Click(sender As Object, e As EventArgs) Handles pnlControlListView.Click picControlListView_Click(sender, e) End Sub Private Sub lblControlListName_Click(sender As Object, e As EventArgs) Handles lblControlListName.Click picControlListView_Click(sender, e) End Sub Private Sub lblControlListType_Click(sender As Object, e As EventArgs) Handles lblControlListType.Click picControlListView_Click(sender, e) End Sub Private Sub txtControlListFocus_LostFocus(sender As Object, e As EventArgs) Handles txtControlListFocus.LostFocus pnlControlList.Visible = False End Sub #End Region
Что я уже пробовал:
Вот что я нашел в google.
Я пытался
pnlControlList.ScrollControlIntoView(childPanel)
но вместо того, чтобы панель фокусировалась, родительский элемент управления помещает огромное поле / пустое пространство над ребенком.Пожалуйста, посмотрите на это изображение.[^]
Graeme_Grant
Изображение и описание не дают достаточной информации. Кроме того, мы не можем видеть ваш код отсюда...
Nelek
Код был добавлен