Apenas evitar que los valores de la izquierda y de la tapa sean corregidos como en este ejemplo. Solamente la necesidad del cociente un cierto ajuste, pero usted debe poder imaginar eso.
Namespace WindowsFormsApplication2
Clase parcial pública Form1
Hereda la forma
MÁXIMO de Const como número entero = 800
La izquierda privada como número entero = 0, tapa como número entero = 0, anchura como número entero = 0, altura como número entero = 0, deltaResize como número entero = 0
Privado startResize como boleano = falso
Nuevos secundarios públicos ()
InitializeComponent ()
Submarino del extremo
Submarino privado Form1_ResizeEnd (remitente como objeto, e como EventArgs)
Si Form1.ActiveForm.Left <> entonces se fue
Form1.ActiveForm.Left = se fue
Terminar si
Si tapa <> de Form1.ActiveForm.Top entonces
Form1.ActiveForm.Top = tapa
Terminar si
Si Form1.ActiveForm.Width > MÁXIMO después
Form1.ActiveForm.Width = MÁXIMO
Terminar si
Dévil formResize como el número entero = anchura - Form1.ActiveForm.Width
Amortiguar ratioFormBar como solo = el MÁXIMO/progressBar1.Width
Intento
progressBar1.Value = progressBar1.Value - CInt (Math.Floor (formResize /ratioFormBar))
Retén
Si progressBar1.Value - CInt (Math.Floor (formResize /ratioFormBar)) <� 0="" Then=""> progressBar1.Value = 0
Terminar si
Si progressBar1.Value - CInt (Math.Floor (formResize /ratioFormBar)) > MÁXIMO entonces
progressBar1.Value = MÁXIMO
Terminar si
Terminar el intento
Terminar el submarino
Submarino privado Form1_ResizeBegin (remitente como objeto, e como EventArgs)
Si Form1.ActiveForm IsNot nada entonces
izquierda = Form1.ActiveForm.Left
tapa = Form1.ActiveForm.Top
anchura = Form1.ActiveForm.Width
altura = Form1.ActiveForm.Height
Terminar si
Terminar el submarino
Submarino privado Form1_Activated (remitente como objeto, e como EventArgs)
progressBar1.Value = Form1.ActiveForm.Left
progressBar1.Maximum = MÁXIMO
anchura = Form1.ActiveForm.Width
altura = Form1.ActiveForm.Height
Submarino del extremo
Submarino privado progressBar1_MouseDown (remitente como objeto, e como MouseEventArgs)
Si e.Button = MouseButtons.Left después
deltaResize = e.X
startResize = verdad
Terminar si
Terminar el submarino
Submarino privado progressBar1_MouseUp (remitente como objeto, e como MouseEventArgs)
Si e.Button = MouseButtons.Left AndAlso entonces startResize
mouseMovement dévil como número entero = e.X - deltaResize
Amortiguar ratioFormBar como solo = el MÁXIMO/progressBar1.Width
Form1.ActiveForm.Width = Form1.ActiveForm.Width + CInt (Math.Floor (mouseMovement * ratioFormBar))
startResize = verdad
Terminar si
Terminar el submarino
Terminar la clase
Terminar el namespace