Поделиться через


Как: Определить изменения размеров и позиционирование в разделенном окне

Панели элемента управления SplitContainer хорошо подходят для изменения их размера и манипуляции пользователями. Тем не менее, будет время, когда вы хотите программно контролировать разделитель , где он расположен и в какой степени он может быть перемещен.

Свойство SplitterIncrement и другие свойства элемента управления SplitContainer позволяют точно контролировать поведение пользовательского интерфейса в соответствии с вашими потребностями. Эти свойства перечислены в следующей таблице.

Имя Описание
свойство IsSplitterFixed Определяет, перемещается ли разделитель с помощью клавиатуры или мыши.
свойство SplitterDistance Определяет расстояние в пикселях от левого или верхнего края к перемещаемой полосе разбиения.
свойство SplitterIncrement Определяет минимальное расстояние в пикселях, на которое пользователь может переместить разделитель.

В приведенном ниже примере свойство SplitterIncrement изменяется для создания эффекта "прилипающего разделителя": когда пользователь перетаскивает разделитель, он изменяется с шагом в 10 пикселей вместо стандартного 1 пикселя.

Чтобы определить поведение изменения размера SplitContainer

  1. В процедуре установите для свойства 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 пикселей в любом направлении, разделитель переместится к новому положению.

См. также