Как раз предотвратите значения левой стороны и верхней части от быть отредактированным как в этот пример. Только потребность коэффициента некоторый регулировать, но вы должны мочь вычислять то вне.
Namespace WindowsFormsApplication2
Общественный частично тип Form1
Наследует форму
МАКСИМУМ Const как интежер = 800
Приватная левая сторона как интежер = 0, верхняя часть как интежер = 0, ширина как интежер = 0, высота как интежер = 0, deltaResize как интежер = 0
Приватно startResize как булевско = ложно
Общественные Sub новые ()
InitializeComponent ()
Подводная лодка конца
Приватная подводная лодка Form1_ResizeEnd (прислужник как предмет, e как EventArgs)
Если Form1.ActiveForm.Left <> вышло после этого
Form1.ActiveForm.Left = вышло
Закончитесь если
Если верхняя часть <> Form1.ActiveForm.Top после этого
Form1.ActiveForm.Top = верхняя часть
Закончитесь если
Если Form1.ActiveForm.Width > МАКСИМУМ после этого
Form1.ActiveForm.Width = МАКСИМУМ
Закончитесь если
Тускло formResize как интежер = ширина - Form1.ActiveForm.Width
Затемните ratioFormBar как одиночная = МАКСИМУМ/progressBar1.Width
Попытка
progressBar1.Value = progressBar1.Value - CInt (Math.Floor (formResize /ratioFormBar))
Задвижка
Если progressBar1.Value - CInt (Math.Floor (formResize /ratioFormBar)) <� 0="" Then=""> progressBar1.Value = 0
Закончитесь если
Если progressBar1.Value - CInt (Math.Floor (formResize /ratioFormBar)) > МАКСИМУМ после этого
progressBar1.Value = МАКСИМУМ
Закончитесь если
Закончите попытку
Закончите подводную лодку
Приватная подводная лодка Form1_ResizeBegin (прислужник как предмет, e как EventArgs)
Если Form1.ActiveForm IsNot ничего после этого
левая сторона = Form1.ActiveForm.Left
верхняя часть = Form1.ActiveForm.Top
ширина = Form1.ActiveForm.Width
высота = Form1.ActiveForm.Height
Закончитесь если
Закончите подводную лодку
Приватная подводная лодка Form1_Activated (прислужник как предмет, e как EventArgs)
progressBar1.Value = Form1.ActiveForm.Left
progressBar1.Maximum = МАКСИМУМ
ширина = Form1.ActiveForm.Width
высота = Form1.ActiveForm.Height
Подводная лодка конца
Приватная подводная лодка progressBar1_MouseDown (прислужник как предмет, e как MouseEventArgs)
Если e.Button = MouseButtons.Left после этого
deltaResize = e.X
startResize = True
Закончитесь если
Закончите подводную лодку
Приватная подводная лодка progressBar1_MouseUp (прислужник как предмет, e как MouseEventArgs)
Если e.Button = MouseButtons.Left AndAlso startResize после этого
Тусклое mouseMovement как интежер = e.X - deltaResize
Затемните ratioFormBar как одиночная = МАКСИМУМ/progressBar1.Width
Form1.ActiveForm.Width = Form1.ActiveForm.Width + CInt (Math.Floor (mouseMovement * ratioFormBar))
startResize = True
Закончитесь если
Закончите подводную лодку
Закончите тип
Закончите Namespace