Hallo Gemeinde!
Ich komme als blutiger Umsteiger von VB6 einfach nicht weiter.
Eine komplette Form (mit samt ihren Controls und Bildern) abdunkeln möchte ich.
Gefunden habe ich als einzige Möglichkeit, mit dem opacity zu arbeiten.
Dieses gibt es nur bei der Form, also: Form auf Form.
In der MSDN-Datenbank habe ich ein Beispiel gefunden, dass mir eine Form aber nur als "Modal Box",
also ausserhalb meiner Form als Extrafenster darstellt.
Ich möchte sie aber übereinander, gleichzeitig darstellen.
Was mache ich falsch? Geht das überhaupt so "einfach"?
Hier meine vergeblichen Mühen:
Spoiler anzeigen
Ich komme als blutiger Umsteiger von VB6 einfach nicht weiter.
Eine komplette Form (mit samt ihren Controls und Bildern) abdunkeln möchte ich.
Gefunden habe ich als einzige Möglichkeit, mit dem opacity zu arbeiten.
Dieses gibt es nur bei der Form, also: Form auf Form.
In der MSDN-Datenbank habe ich ein Beispiel gefunden, dass mir eine Form aber nur als "Modal Box",
also ausserhalb meiner Form als Extrafenster darstellt.
Ich möchte sie aber übereinander, gleichzeitig darstellen.
Was mache ich falsch? Geht das überhaupt so "einfach"?
Hier meine vergeblichen Mühen:
VB.NET-Quellcode
- Public Class Form1
- Public Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- Me.Size = New Size(500, 500)
- Me.BackColor = Color.Azure
- Panel1.Size = New Size(300, 300)
- Panel1.BackColor = Color.Coral
- Dim form2 As New Form()
- form2.Text = "So will ich die Form haben, aber über einer zweiten Form, gleichzeitig!"
- form2.BackColor = Color.Black
- form2.Opacity = 0.5
- form2.Size = New Size(300, 300)
- form2.StartPosition = FormStartPosition.CenterScreen
- form2.BringToFront()
- form2.Dock = DockStyle.Fill
- form2.Opacity = 0.5
- 'Als "modal dialog box" geht es hier
- form2.ShowDialog(Me)
- Dim f2 As New Form()
- f2.Text = "Wie hier Transparenz erzeugen?"
- f2.BackColor = Color.Black
- f2.Opacity = 0.5
- f2.BringToFront()
- f2.Dock = DockStyle.Fill
- f2.TopLevel = False
- f2.Show()
- Panel1.Controls.Add(f2)
- 'Me.Controls.Add(f2) bringt die neue Form hinter das Panel1 ?
- f2.TopMost = True
- End Sub
- End Class