本主题描述了如何限制由最终用户执行的调整大小操作。 调整大小操作 章节展示了最终用户如何调整面板的大小的基础信息。
响应由最终用户执行的调整大小操作
当最终用户开始调整大小操作时,适当的 停靠管理器 的 DockManager.StartSizing 事件发生。 此事件在最终用户按下鼠标按钮之后立即发生。 在调整大小操作被启动之前,可以把此事件的 Cancel 参数设置为 true,来取消调整大小操作。
如果该操作没有被取消,那么最终用户可以拖动面板的边缘来调整它的大小。 当每次移动鼠标时,DockManager.Sizing 事件都会发生。 该事件的 PtClient 参数指示了当前的鼠标指针坐标,该坐标相对于被调整大小的面板的左上角,并且可以用于确定停靠面板潜在的大小。 如果当面板潜在的大小等于某个值 (例如小于特定的值) 时需要取消调整大小操作, 则需要把该事件的 Cancel 参数设置为 true。
当放开鼠标按钮时,被拖动边缘会被移动到新位置,并且 DockManager.EndSizing 事件发生。示例
下面的示例代码展示了当子面板属于 分隔式容器 时,如何阻止子面板被垂直调整大小。 仍然允许水平调整大小操作。 StartSizing 事件被接管,来启用和禁用调整大小操作。
通过拖动其下边缘,在垂直分隔式容器内的子面板可以被调整大小。 因此如果该面板的下边缘被拖动,则该事件的 Cancel 参数应该被设置为 true。
最大化按钮 () 允许最终用户最大化和最小化在分隔式容器内的某个特定面板。 在本例中,通过把停靠管理器的 BaseDockOptions.ShowMaximizeButton 属性设置为 false,来隐藏这些按钮。
C# | 复制代码 |
---|---|
using DevExpress.XtraBars.Docking; // ... private void Form1_Load(object sender, System.EventArgs e) { dockManager1.DockingOptions.ShowMaximizeButton = false; } private void dockManager1_StartSizing(object sender, StartSizingEventArgs e) { // Get the container panel that owns the panel being dragged. DockPanel parentPanel = e.Panel.ParentPanel; if(parentPanel != null) { // Disable the sizing operation when the panel's bottom edge is being dragged. e.Cancel = e.SizingSide == SizingSide.Bottom; } } |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.XtraBars.Docking ' ... Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load DockManager1.DockingOptions.ShowMaximizeButton = False End Sub Private Sub DockManager1_StartSizing(ByVal sender As Object, ByVal e As StartSizingEventArgs) _ Handles DockManager1.StartSizing ' Get the container panel that owns the panel being dragged. Dim parentPanel As DockPanel = e.Panel.ParentPanel If Not parentPanel Is Nothing Then ' Disable the sizing operation when the panel's bottom edge is being dragged. e.Cancel = e.SizingSide = SizingSide.Bottom End If End Sub |