Menüsteuerung

chickendeath

Grünschnabel
Hallo alle zusammen,

ich bin momentan in den Anfängen von C# und versuche gerade ein einfaches Hauptmenü mit Visual Studio zu bauen. Das einzige Problem was mich aber beschäftigt, ist folgendes:

Ich habe ein Hauptmenü mit Unterpunkten. Ich wähle einen Unterpunkt an - der Inhalt erscheint. Nun wähle ich einen anderen Menüpunkt an und der vorherige Inhalt verschwindet, der neue taucht auf.

Wie verschwindet der vorherige Inhalt - soll ich die vorherigen Felder auf Visible = false stellen oder wie?


Weil bei beispielsweise 100 Menüpunkten (hoch gegriffen) ist die grafische Entwicklungsoberfläche ja vollgestopft mit tausenden von Steuerungselementen und die Übersicht geht komplett verloren wenn man für jeden Unterpunkt neue Elemente anlegt. Und alles immer auf visible = false zu stellen erscheint mir vorerst extrem umständlich.

Ich habe noch nichts dementsprechendes gefunden - aber wie machen denn tausende von Entwicklern das?

Für Hilfe wirklich sehr dankbar!

chickendeath
 
Ehrlich gesagt,...
Ganz verstanden hab ich das Problem nicht!

Vielleicht kannst es ja mittels dieser Graphik ein bisi besser erklären.
Oder du hängst einfach einen Screenshot aus deinem Programm an.

CU later

Michi
 

Anhänge

  • menu.gif
    menu.gif
    4,5 KB · Aufrufe: 44
Ich habe mal schnell eine Skizze gemacht damit du / ihr es besser versteh(s)t. Je nachdem welchen Menüpunkt ich anwähle, kommt auch wirklich der dazugehörige Inhalt. Wenn ich beispielsweise Menüpunkt 1 anwähle und danach Menüpunkt 2, so muss es ja zu bewältigen sein 2 Inhalte auseinanderzuhalten. D.h. getrennt voneinander anzuzeigen. Damit dies geschieht, muss ja aber der vorherige Inhalt von Menüpunkt 1 im Inhaltsfenster verschwinden, sonst wären ja beide Inhalte sichtbar ( szg. überlagert ).

Es ist wirklich im Prinzip nur eine ganz einfache Frage - eben wie das mit der Inhaltssteuerung geht. Wenn Menüpunkt 1, dann das zeigen// Wenn Menüpunkt 2, dann das zeigen.....usw.

MfG chickendeath
 

Anhänge

  • menu.gif
    menu.gif
    8,6 KB · Aufrufe: 42
Hi.

Im Contentbereich erstelle in Panel, und die jeweiligen Inhalte in UserControls, oder auch auf Panels, welche du dir handisch erstellst.
Wenn ein MenüPunkt ausgewählt wurde, entfernst du die Controls aus dem Panel im Contentbereich, und fügst das gewünschte UserControl (oder das Panel, welche die ganzen Controls beinhaltet) ein.

MfG,
Alex

Beispiel (nicht lauffähig ;))
Code:
using System;
using System.Collections;
using System.Windows.Forms;

public class MyClass : Form
{
	public static void Main()
	{
		
	}
	
	public MyClass()
	{
		//...
		MI1_Content = this.CreateMI1Content();
		MI2_Content = this.CreateMI2Content();
	}
	
	private Panel MI1_Content;
	private Panel MI2_Content;
	private Panel pPlaceholder;
	
	private Panel CreateMI1Content()
	{
		Panel p = new Panel();
		
		TextBox txt1 = new TextBox();
		txt1.Text = "Huhu.. Content1";
		txt1.DockStyle = DockStyle.Fill;
		p.Controls.Add(txt1);
		return p;		
	}
	
	private Panel CreateMI2Content()
	{
		Panel p = new Panel();
		
		TextBox txt1 = new TextBox();
		txt1.Text = "Huhu.. Content2";
		txt1.DockStyle = DockStyle.Fill;
		p.Controls.Add(txt1);
		return p;		
	}
	
	// Diese 2 Methoden hier dann in den Eventhandler aufrufen ..
	private void ShowContent1()
	{
		pPlaceholder.Controls.Clear();
		pPlaceholder.Controls.Add(MI1_Content);
	}
	
	private void ShowContent2()
	{
		pPlaceholder.Controls.Clear();
		pPlaceholder.Controls.Add(MI2_Content);
	}
	
}
 
Zurück