WinForm - zeichnen Ändern der Größe Rahmen einer Ein-Pixel-Grenze unter Verwendung von

StackOverflow https://stackoverflow.com/questions/93811

  •  01-07-2019
  •  | 
  •  

Frage

In einem Windows Form mit einem Ändern der Größe von Rahmen, zieht die Rahmengrenze mit einer erhöhten 3-D-Optik. Ich möchte es mit einer flachen einzelnen Pixeln Grenze in einer Farbe meiner Wahl zu ziehen.

Ist dies möglich, ohne Eigentümer, die die ganze Form ziehen?

War es hilfreich?

Lösung

Sie könnte so etwas wie diese versuchen:

Point lastPoint = Point.Empty;
Panel leftResizer = new Panel();
leftResizer.Cursor = System.Windows.Forms.Cursors.SizeWE;
leftResizer.Dock = System.Windows.Forms.DockStyle.Left;
leftResizer.Size = new System.Drawing.Size(1, 100);
leftResizer.MouseDown += delegate(object sender, MouseEventArgs e) { 
  lastPoint = leftResizer.PointToScreen(e.Location); 
  leftResizer.Capture = true;
}
leftResizer.MouseMove += delegate(object sender, MouseEventArgs e) {
  if (lastPoint != Point.Empty) {
    Point newPoint = leftResizer.PointToScreen(e.Location);
    Location = new Point(Location.X + (newPoint.X - lastPoint.X), Location.Y);
    Width = Math.Max(MinimumSize.Width, Width - (newPoint.X - lastPoint.X));
    lastPoint = newPoint;
  }
}
leftResizer.MouseUp += delegate (object sender, MouseEventArgs e) { 
  lastPoint = Point.Empty;
  leftResizer.Capture = false;
}

form.BorderStyle = BorderStyle.None;
form.Add(leftResizer);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top