Hallo,
ich möchte in meiner Form eine Tastatur zeichnen.
Ziel ist es, ein Programm zum testen der Tastatur zu schreiben.
(die Tastatur soll mit der Größe der Form wachsen/schrumpfen)
Betätige ich eine Taste auf der Tastatur, soll entsprechende Taste im Programm andersfarbig dargestellt werden.
Beispiel aus einem anderen Programm:
Ich bin mir aber nicht sicher, wie ich die Tastatur zeichnen soll.
Anfangs habe ich versucht, das mit TableLayoutPanels zu lösen.
Hat nur lausige 18 TableLayoutPanels gebraucht, bis ich ein Gebilde hatte, welches als Tastatur zu erkennen war
Es war sogar noch ganz performant, wenn ich die Größe der Form verändert habe.
Kleines Bildchen bei betätigter Leertaste:
Aber irgendwie war mir das nicht Professionell genug. Ich wollte es direkt "richtig" machen.
Also probierte ich jede Taste einzeln zu zeichnen. Natürlich nie in Pixel Angaben, sondern alles Prozentual zur Form Breite & Höhe:
Funktionierte soweit auch gut. Zumindest solange bis ich mich das erste mal gefragt habe, wie ich die einzelnen gezeichneten Rechtecke farbig bekomme, wenn ich mal eine Taste drücke.
Ich meine, das sind einfach hintereinander weg gezeichnete Rechtecke. Keine Objekte denen ich mal eben eine neue Farbe verpassen kann.
Meinen Test Code kann ich auch mal anhängen:
Spoiler anzeigen
Gleich mal noch eine Nebenbaustelle:
Ich habe sowohl in meinem VB.Net Büchlein, als auch hier im Forums Tutorial gelesen, das ich im
Das hat aber im Gegensatz zu
Zurück zum Hauptproblem:
Mir fehlt das nötige Konzept, um mein Vorhaben umsetzen zu können.
Ich würde mich da über Vorschläge eurerseits freuen.
ich möchte in meiner Form eine Tastatur zeichnen.
Ziel ist es, ein Programm zum testen der Tastatur zu schreiben.
(die Tastatur soll mit der Größe der Form wachsen/schrumpfen)
Betätige ich eine Taste auf der Tastatur, soll entsprechende Taste im Programm andersfarbig dargestellt werden.
Beispiel aus einem anderen Programm:
Ich bin mir aber nicht sicher, wie ich die Tastatur zeichnen soll.
Anfangs habe ich versucht, das mit TableLayoutPanels zu lösen.
Hat nur lausige 18 TableLayoutPanels gebraucht, bis ich ein Gebilde hatte, welches als Tastatur zu erkennen war
Es war sogar noch ganz performant, wenn ich die Größe der Form verändert habe.
Kleines Bildchen bei betätigter Leertaste:
Aber irgendwie war mir das nicht Professionell genug. Ich wollte es direkt "richtig" machen.
Also probierte ich jede Taste einzeln zu zeichnen. Natürlich nie in Pixel Angaben, sondern alles Prozentual zur Form Breite & Höhe:
Funktionierte soweit auch gut. Zumindest solange bis ich mich das erste mal gefragt habe, wie ich die einzelnen gezeichneten Rechtecke farbig bekomme, wenn ich mal eine Taste drücke.
Ich meine, das sind einfach hintereinander weg gezeichnete Rechtecke. Keine Objekte denen ich mal eben eine neue Farbe verpassen kann.
Meinen Test Code kann ich auch mal anhängen:
VB.NET-Quellcode
-
- Private Sub frmTestsInput_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
- Dim z As Graphics = CreateGraphics()
- Dim pen As New Pen(Color.Black, 1)
- Dim BrushText As New SolidBrush(Color.White)
- Dim BrushRectangle As New SolidBrush(Color.Black)
- Dim font As New Font("Arial", 10)
- z.Clear(BackColor)
- 'ESC
- z.FillRectangle(BrushRectangle, 10, 10, CInt(Me.Width / 100 * 6), CInt(Me.Height / 100 * 10))
- z.DrawString("ESC", font, BrushText, 10, 10)
- ' F1 - F4
- z.FillRectangle(BrushRectangle, CInt(Me.Width / 100 * 10), 10, CInt(Me.Width / 100 * 6), CInt(Me.Height / 100 * 10))
- z.DrawString("F1", font, BrushText, CInt(Me.Width / 100 * 10), 10)
- z.FillRectangle(BrushRectangle, CInt(Me.Width / 100 * 16.5), 10, CInt(Me.Width / 100 * 6), CInt(Me.Height / 100 * 10))
- z.DrawString("F2", font, BrushText, CInt(Me.Width / 100 * 16.5), 10)
- z.FillRectangle(BrushRectangle, CInt(Me.Width / 100 * 23), 10, CInt(Me.Width / 100 * 6), CInt(Me.Height / 100 * 10))
- z.DrawString("F3", font, BrushText, CInt(Me.Width / 100 * 23), 10)
- z.FillRectangle(BrushRectangle, CInt(Me.Width / 100 * 29.5), 10, CInt(Me.Width / 100 * 6), CInt(Me.Height / 100 * 10))
- z.DrawString("F4", font, BrushText, CInt(Me.Width / 100 * 29.5), 10)
- End Sub
Gleich mal noch eine Nebenbaustelle:
Ich habe sowohl in meinem VB.Net Büchlein, als auch hier im Forums Tutorial gelesen, das ich im
Paint Event
e.Graphics
verwenden soll/muss/kann.Das hat aber im Gegensatz zu
Dim z As Graphics = CreateGraphics()
den Nachteil, das sich beim ändern der Formgröße nichts aktualisiert. Habe ich da etwas falsch gemacht?Zurück zum Hauptproblem:
Mir fehlt das nötige Konzept, um mein Vorhaben umsetzen zu können.
Ich würde mich da über Vorschläge eurerseits freuen.