Forums Neueste Beiträge
 

wie Menüstruktur realisieren?

12/02/2010 - 10:21 von Michael Andreas | Report spam
Hi,

ich möchte eine Menüstruktur mit Buttons realisieren.
Das ganze wird per TouchScreen bedient.
Das bedeutet:
Grundsàtzlich werden Untermenüs nur durch anklicken sichtbar.
Die Buttons sollen nur Images zeigen.

Ich dachte ich könnte dies mit menuStrips realisieren, die erfüllen
aber nicht die obere Bedingung und zeigen rechts neben den Buttons
immer zusàtzlich ein weißes Feld.

Ich kann das ganze natürlich mit Panels und Buttons oder ToolStrips
machen - aber gibts keine einfachere Lösung?

Gruss Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
13/02/2010 - 20:49 | Warnen spam
Hallo Michael,

ich möchte eine Menüstruktur mit Buttons realisieren.
Das ganze wird per TouchScreen bedient.
Das bedeutet:
Grundsàtzlich werden Untermenüs nur durch anklicken sichtbar.
Die Buttons sollen nur Images zeigen.
Ich dachte ich könnte dies mit menuStrips realisieren, die erfüllen
aber nicht die obere Bedingung und zeigen rechts neben den Buttons
immer zusàtzlich ein weißes Feld.



Also man kann es mit MenuStrip's machen, aber
dann wird man zum Beispiel Techniken wie hier einsetzen:

[Gewusst wie: Anzeigen von Optionsfeldern in einem MenuStrip (Windows
Forms)]
http://msdn.microsoft.com/de-de/lib...04318.aspx

... nur dann nicht für "RadioButton", sondern eben für "Button"
und dann beim OnPaint ein "ButtonRenderer.DrawButton"
mit gewünschtem PushButtonState (vielleicht Default). Etwas wie:

PushButtonState state = PushButtonState.Default;

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (state == PushButtonState.Pressed)
{
this.BackColor = Application.RenderWithVisualStyles ?
Color.Azure : this.Parent.BackColor;
ButtonRenderer.DrawButton(e.Graphics, ContentRectangle,
true, state);
}
else // ganz rudimentàr ...
ButtonRenderer.DrawButton(e.Graphics, ContentRectangle, state);

e.Graphics.DrawImage(Properties.Resources.DeinButtonBild,
ContentRectangle); // Bild ggf. in kleinerem Rectangle zeichnen.
}
________

Das charmante ist, dass Du diese Klasse einfach wie
oben erstellst und ins Projekt einbindest.
Danach kannst Du dann einfach über den MenuStrip-Designer
diesen neuen ToolStripMenuItem über die MenuStrip-Designer-
ComboBox auswàhlen. Dann müsste noch einiger Code
aus dem Beispiel entfernt werden.
________

BTW: Diese Dinge gehen natürlich in WPF (u.a.
mit Templating) immer etwas leichter.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen