Moin,
also ich habe 2 Forms -
beim Main - Form klicke ich in einem Explorer auf ein Bild,
welches dann in einem Subform auf dem Sekundär-Bildschirm ohne
Border und Bounds on Secondary Screen ist.
In dem Subform wird das jeweils angeklickte Bild in einer PictureBox angezeigt,
funzt alles wie gewollt. Jetzt will ich auf der PcitureBox Zeichnen,
aber ich bekomme Probleme, das er mir den PrimaryScreen
dazunimmt und dann zeichnet er neben der Maus.... 🤔
Hier mein Code:
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
lastPoint = e.Location; // der letzte mauspunkt ist der punkt uaf der picturebox
isMouseDown = true; // maus klickt
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown == true)
{
if (lastPoint != null)
{
if (pictureBox1.Image != null)
{
}
using (Graphics g = Graphics.FromImage(pictureBox1.Image))
{
g.DrawLine(new Pen(Color.Red, 5), lastPoint, e.Location);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
}
pictureBox1.Invalidate();
lastPoint = e.Location;
}
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
isMouseDown = false;
lastPoint = Point.Empty;
}
Muss ich den Screen Eigenschaft des SecondaryScreen irgendwie ändern?
Hallo schorge,
du zeichnest in das Bild. Wenn dasselbe Bild auch auf dem ersten Schirm dargestellt wird, wird es - nach einem Invalidate - auch dort geändert angezeigt. Das sollte klar sein.
Als Koordinaten verwendest du die Mauskoordinaten relativ zur PictureBox. Je nach eingestelltem PictureBoxSizeMode stimmen diese nicht mit dem Koordinaten im Bild überein.
Du könntest auf die PictureBox zeichnen (das müsstest du dann allerdings im OnPaint/Paint machen), dann stimmen die Koordinaten und dann wird auch nur die gewünschte PictureBox geändert. In [Artikel] Zeichnen in Windows-Programmen steht, wie man im OnPaint/Paint zeichnet.
herbivore