Практическое руководство. Определение способа изменения размеров и позиционирования в окне с перемещаемым разделителем
Панели элемента SplitContainer управления поддаются, размеров и управлению пользователями. Тем не менее, будет существовать раз, когда необходимо программно управлять разделителем, где он размещается, и определить, каким образом его можно переместить.
SplitterIncrement Свойства и другие свойства SplitContainer управления позволяют точно контролировать поведение пользовательского интерфейса в соответствии с потребностями. Эти свойства перечислены в следующей таблице.
name | Описание |
---|---|
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 точек в любом направлении, разделитель будет привязана к новой позиции.