Transparente Form inkl. Click & Drag / Tutorial C# .NET

Um eine Transparente Form zu erstellen mit der es möglich ist diese per Click & Drag auf dem Desktop zu verschieben, sind folgende Schritte notwendig:

1. Neues Projekt erstellen.

2. Im Projektmappen Explorer Form1.Designer wählen und dort die Grösse nach belieben anpassen.

3. Dann ziehen wir eine PictureBox, die fast so gross ist, wie das Formular.

4. Nun laden wir uns das entsprechende Bild, welches unser neues Formular darstellen soll.

5. Die PictureBox bekommt als BackgroundColor Transparenz zugewiesen.

6. Nun ändern wir die Form in den Eigenschaften ab, in dem wir den FormBorderStyle auf None stellen.

7. Und in den Eigenschaften des Formulars, ganz unten namens TransparencyKey auf Transparent.

8. Im Projektmappen Explorer wählen wir nun die Ereignisse für die Form (welche noch immer selektiert ist) aus:

9. Dort suchen wir nach MouseDown und klicken diese doppelt, das selbe mit MouseMove.

10. dann instanzieren wir oberhalb beider MouseEvents, aus der Klasse Point ein Objekt namens Click

1
Point click;

in dem MouseDownEvent schreiben wir:

1
click = new Point(e.X, e.Y);

und im MouseMoveEvent folgendes

1
2
3
4
5
if (e.Button == MouseButtons.Left)
{
  this.Left += e.X - click.X;
  this.Top += e.Y - click.Y;
}

11. Die Events für die PictureBox erstellen wir auf der selben Weise, wie bei dem Formular:

12. In diesen Events rufen wir nun die jeweiligen Methoden vom Formular auf:

1
2
3
4
5
6
7
8
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
  Form1_MouseDown(sender, e);
}
  private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
  Form1_MouseMove(sender, e);
}

Kompilieren & Ausführen (F5)
Et Voilà* Voilá** und fertig.

Wenn zu diesem Tut noch Fragen offen sind, einfach die Kommentarfunktion benutzen ; )

hf & enjoy!

*, **

Related Blogs

Ähnliche Beiträge



Auch wenn Du nichts zu diesem Thema sagen möchtest, bringst du mit einem Klick auf den Like- oder KickButton zum Ausdruck, dass dir dieser Artikel gefällt. Vielen Dank : )

Kick it on dotnet-kicks.de

  1. Warum noch eine Picturebox, man könnte das Bild doch auch einfach als Backgroundimage der Form setzen.

    LG Karim

  2. Das geht leider nicht, glaube das ich das probiert habe…

    • Falk
    • August 20th, 2009 11:09am

    hi
    2 anmerkungen noch zu deinem tut

    1. Ja man braucht nicht extra eine picture box
    2. hast vdu ergessen zu sagen, dass die Farbe des TransparencyKey gleich der hintergrundfarbe der Form sein muss

    sonst aber seh schön beschrieben
    gruß
    Falk

  3. Danke für die Ergänzung : )

  4. Implementierung in WPF:

    private void Window_MouseDown(object sender, MouseEventArgs e)
    {
    point = new Point(e.GetPosition(this).X, e.GetPosition(this).Y);

    }

    private void Window_MouseMove(object sender, MouseEventArgs e)
    {
    if (e.LeftButton == MouseButtonState.Pressed)
    {
    this.Left += e.GetPosition(this).X – point.X;
    this.Top += e.GetPosition(this).Y – point.Y;
    }
    }

  5. Noch einfacher gehts so:

    this.MouseDown += (Window_MouseMove);

    private void Window_MouseMove(object sender, MouseEventArgs e)
    {
    this.DragMove();
    }

  1. Noch keine Trackbacks.