Как я могу построить расширяемую и складную панель в VB.net? - PullRequest
0 голосов
/ 04 мая 2018

Я ищу способ сделать панель, которая может быть развернута и свернута с помощью маленькой стрелки или кнопки. Я пытался найти некоторые примеры, пока ничего не получалось. Я попытался изменить размер группы до 0px, но проблема заключалась в том, что когда я это сделал, панель под ней осталась на прежнем месте, и я хотел, чтобы она скользила вверх, чтобы сохранить экранную область.

У меня есть набор меток и текстовых полей, которые предоставляют мне данные, но занимают много места, и я сгруппировал их вместе.

Буду признателен за любую помощь.

David

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Если вы хотите использовать анимацию в выигрышных формах, например, когда панель свернулась, а дополнительное пространство должно быть покрыто содержимым, тогда вы можете использовать

Свойство Control.Top () и Control.Left () 'control = имя вашего элемента управления, на котором написано содержимое, например, метка, текстовое поле и т. Д.

Или второй выбор

Чтобы изменить размер вашего контента (например, увеличить размер и т. Д.).

Зависит от вашего выбора, так как я не вижу вашей формы представления, но советую вам исходя из моего воображения.

Например, моя высота панели равна 100, и когда я рухнул, я хочу, чтобы мой следующий элемент управления переместился вверх на 100 (предположим)

Предположим, мой следующий элемент управления - RichTextBox

Затем вы можете изменить здесь:

Public Class Form1
  Dim panelshow As Boolean = True
  Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    If panelshow = False Then
        panelshow = True
        Panel1.Show()
        RichTextBox1.Top = RichTextBox1.Top + 100
        RichTextBox1.Height = RichTextBox1.Height - 100
    Else
        Panel1.Hide()
        panelshow = False
        RichTextBox1.Top = RichTextBox1.Top - 100
        RichTextBox1.Height = RichTextBox1.Height + 100
    End If
  End Sub
End Class

Просто добавьте метод в дополнение к нашему предыдущему коду, чтобы сделать это. Не обращайте внимания на мои грамматические ошибки. Я не совершенен в английском.

Для получения дополнительной помощи прокомментируйте или опубликуйте свой код (если у вас есть какие-либо проблемы)

0 голосов
/ 04 мая 2018

Большинство людей ответили на вопрос о развале и расширении, но ответили на ваш вопрос об «анимации», чтобы она действительно имела хорошее ощущение скольжения. Для winforms я рекомендую эту библиотеку на github DotNet Transitions

затем вы можете написать очень простой код, чтобы придать ему анимированный переход.

при использовании библиотеки переходов этот код разрушит панель за полсекунды:

Transitions.Transition.run(pnl, "Height",
                                   initialValue:=pnl.Height,
                                   destinationValue:=0,
                                   transitionMethod:=New TransitionType_EaseInEaseOut(500)
                                   )
0 голосов
/ 04 мая 2018

Простой в форме окна Вставьте кнопку и напишите код

Простой пример:

   Public Class Form1
    Dim panelshow As Boolean = False
       Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
          If panelshow = False Then
            panelshow = True
            Panel1.Show()
          Else
            Panel1.Hide()
            panelshow = False
          End If
       End Sub
    End Class

Вы можете изменить имя переменных, кнопок и панелей.

Установите для PanelShow значение false, если при запуске приложения ваша панель свернута, в противном случае - значение true, если ваша панель видна при запуске и ее пользователь хочет скрыть позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...