Практическое руководство. Определение способа изменения размеров и позиционирования в окне с перемещаемым разделителем
Панели элемента управления SplitContainer легко поддаются изменению размеров и управлению пользователем. Однако могут возникнуть случаи, когда разделителем необходимо управлять программными средствами, то есть определять его положение и степень перемещения.
Свойство SplitterIncrement и другие свойства элемента управления SplitContainer позволяют точно контролировать поведение пользовательского интерфейса в зависимости от потребностей. Эти свойства перечислены в следующей таблице.
Имя |
Описание |
---|---|
Свойство IsSplitterFixed |
Определяет возможность перемещения разделителя при помощи клавиатуры или мыши. |
Свойство SplitterDistance |
Определяет расстояние от левой или верхней границы до перемещаемой полосы-разделителя в точках. |
Свойство SplitterIncrement |
Определяет минимальное расстояние, на которое разделитель может быть перемещен пользователем, в точках. |
Следующий пример изменяет свойство SplitterIncrement для создания эффекта "прыгающего разделителя" – когда пользователь перетаскивает разделитель, прибавляется по 10 точек вместо 1 по умолчанию.
Определение поведения изменения размера SplitContainer
В процедуре укажите для свойства SplitterIncrement желаемый размер, чтобы достичь "скачкообразного" поведения разделителя.
В следующем примере кода в событии формы Load разделитель в элементе управления SplitContainer будет прыгать через 10 точек при перетаскивании.
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim splitSnapper as new SplitContainer() splitSnapper.SplitterIncrement = 10 splitSnapper.Dock = DockStyle.Fill splitSnapper.Parent = me End Sub
private void Form1_Load(System.Object sender, System.EventArgs e) { SplitContainer splitSnapper = new SplitContainer(); splitSnapper.SplitterIncrement = 10; splitSnapper.Dock = DockStyle.Fill; splitSnapper.Parent = this; }
(Visual C#) Добавьте в конструктор формы следующий код, чтобы зарегистрировать обработчик событий.
this.Load += new System.EventHandler(this.Form1_Load);
Плавное перемещение разделителя влево или вправо не даст ощутимого эффекта; однако при переходе указателя на 10 точек в любом направлении разделитель будет перепрыгивать в новое положение.