如何在VB.net中构建可展开和可折叠的面板?
我正在寻找一种方法,使一个面板可以扩大和缩小一个小箭头或按钮。我试着找一些例子,但到目前为止没有任何效果。我试图将一个组的大小调整为0px,但问题是当我这样做时,它下面的面板保持在同一个位置,我希望它向上滑动,以节省屏幕空间 我有一堆标签和文本框,它们为我提供数据,但占用了很多空间,我将它们组合在一起 我们将不胜感激 David窗口形式的简单 插入一个按钮并编写代码 简单的例子:如何在VB.net中构建可展开和可折叠的面板?,vb.net,winforms,Vb.net,Winforms,我正在寻找一种方法,使一个面板可以扩大和缩小一个小箭头或按钮。我试着找一些例子,但到目前为止没有任何效果。我试图将一个组的大小调整为0px,但问题是当我这样做时,它下面的面板保持在同一个位置,我希望它向上滑动,以节省屏幕空间 我有一堆标签和文本框,它们为我提供数据,但占用了很多空间,我将它们组合在一起 我们将不胜感激 David窗口形式的简单 插入一个按钮并编写代码 简单的例子: Public Class Form1 Dim panelshow As Boolean = False
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;如果您的面板在启动时可见并希望稍后由用户隐藏,则将panelshow设置为true。简单窗口形式
插入一个按钮并编写代码
简单的例子:
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;如果面板在启动时可见,并且希望稍后由用户隐藏,则将panelshow设置为true。如果希望在win窗体中使用动画,例如当面板折叠时,并且额外的空间应该被内容覆盖,则可以使用 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
只需在前面的代码中添加一个方法即可完成此操作。
别介意我的语法错误。
我的英语不是很好
有关更多帮助,请评论或发布您的代码(如果您有任何问题)如果您想在win窗体中使用动画,例如当面板折叠时,并且额外的空间应包含内容,则可以使用 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
只需在前面的代码中添加一个方法即可完成此操作。
别介意我的语法错误。
我的英语不是很好
要获得更多帮助,请评论或发布您的代码(如果您有任何问题)大多数人都回答了有关折叠和展开的问题,但要回答您关于“动画”的问题,以便它真正具有良好的幻灯片感。对于winforms,我建议在github上使用此库 然后,您可以编写非常简单的代码,为其提供动画转换 使用transitions库,此代码将在半秒钟内折叠面板:
Transitions.Transition.run(pnl, "Height",
initialValue:=pnl.Height,
destinationValue:=0,
transitionMethod:=New TransitionType_EaseInEaseOut(500)
)
大多数人已经回答了关于折叠和展开的问题,但是要回答您关于“动画”的问题,使其真正具有良好的滑动感觉。对于winforms,我建议在github上使用此库 然后,您可以编写非常简单的代码,为其提供动画转换 使用transitions库,此代码将在半秒钟内折叠面板:
Transitions.Transition.run(pnl, "Height",
initialValue:=pnl.Height,
destinationValue:=0,
transitionMethod:=New TransitionType_EaseInEaseOut(500)
)
这是一个网络项目吗?对不起。我说的是windows窗体。如果您想要一些奇特的UI效果,并且严格限制在Winforms上,请在Winforms中使用WPF控件。例如:这是一个网络项目吗?对不起。我说的是windows窗体。如果您想要一些奇特的UI效果,并且严格限制在Winforms上,请在Winforms中使用WPF控件。例如:如果我想在折叠面板1时将下面的内容向上滑动?如果您想在win窗体中使用动画,例如当面板折叠时,并且额外的空间应该由该内容覆盖,那么您可以使用关于
panelShow=Not panelShow
和panel1.Visible=Not panel1.Visible
Pane1.Visible=False或使用Pane1.Hide()如果我想在折叠面板1时将下面的内容向上滑动?如果您想在win窗体中使用动画,例如当面板折叠时,并且该内容应覆盖额外的空间,那么您可以使用关于panelShow=Not panelShow
和panel1.Visible=Not panel1.Visible
Pane1.Visible=False或使用第1栏隐藏()谢谢!我可以用这个!非常感谢。我可以用这个!