Laden...

Sidebar im Outlook Stil

Erstellt von jaipur vor 16 Jahren Letzter Beitrag vor 16 Jahren 8.745 Views
J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 16 Jahren
Sidebar im Outlook Stil

Bei dieser Sidebar bzw. dem Navigationsdings handelt es sich um die Sidebar welche ich mir bei Outlook abgeguckt habe. Wo es möglich ist zwischen mehreren "Objekten" zu wählen, E-Mail, Kalender, Kontakte, Aufgaben...

In dem Projektordner kann die Datei "MySidebar.cs" einem eigenen Projekt hinzugefügt werden. Danach in eurem Projekt könnt ihr über die Toolbox in dem Designer die neue Komponente per Drag & Drop in eure Form ziehen. Durch die Schnittstelle "AddMySidebarButtons" können neue Objekte hinzugefügt werden. Bei dem ersten Parameter handelt es sich um den Text der Angezeigt werden soll. Bei dem zweiten Parameter um eine Bilddatei, bei dem dritten Parameter um einen Rückgabewert welcher von euch später verarbeitet werden kann, wie hier in dem Event "MouseClick". Und der letzte Parameter sagt dann ob das Objekt sichtbar sein soll oder nicht. Die Zeile mit SetStyle muss sein [link] !


public MyForm()
        {
            InitializeComponent();

            SetStyle(ControlStyles.OptimizedDoubleBuffer |
                ControlStyles.AllPaintingInWmPaint,
                true);

            mySidebar1.AddMySidebarButtons("Null", Properties.Resources.image0, 88, true);
            mySidebar1.AddMySidebarButtons("Eins", Properties.Resources.image1, 11, true);
            mySidebar1.AddMySidebarButtons("Zwei", Properties.Resources.image2, 22, true);
            mySidebar1.AddMySidebarButtons("Drei", Properties.Resources.image3, 33, true);
            mySidebar1.AddMySidebarButtons("Vier", Properties.Resources.image0, 44, true);

            label1.Text = mySidebar1.GetClickedItem().ToString();
        }

Die "-1" sollte und kann nicht als Rückgabewert für ein Objekt angegeben werden, die "-1" ist schon für den MenuButton reserviert wo sich ein ContextMenü öffnet und Objekte angezeigt bzw. versteckt werden können.


private void mySidebar1_MouseClick(object sender, MouseEventArgs e)
        {
            int x = mySidebar1.GetClickedItem();

            label1.Text = x.ToString();

            switch (x)
            {
                case 88:
                    break;
                case 11:
                    break;
                case 22:
                    break;
                case 33:
                    break;
                case 44:
                    break;
                default:
                    MessageBox.Show("\t(^) Inkremt\n\n\t(v) Dekrement\n\n\t(#) Re-Order\n\n\t(>) Show bzw. (<) Hide\t\t",
                    "ContextMenu", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
            }
        }


mySidebar1.IncrementMySidebarButtons();
mySidebar1.DecrementMySidebarButtons();

Die Methoden für Show / Hide der einzelnen Objekte sind noch nicht sooo ausgereift und sind daher noch vom Typ "privat"


private void ShowMySidebarButtons(int Index)
private void HideMySidebarButtons(int Index)

J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 16 Jahren
110 Beiträge seit 2007
vor 16 Jahren

Sieht gut aus, danke schön 😉

J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 16 Jahren

hallo!

a) freut mich das es dir gefällt
b) sorry, aber ich finde momentan keine zeit daran weiter zu arbeiten

bin zur zeit im letzten semester, studium + arbeit hat mich wieder voll im griff 😉

D
14 Beiträge seit 2007
vor 16 Jahren

In dem Projektordner kann die Datei "MySidebar.cs" einem eigenen Projekt hinzugefügt werden. Danach in eurem Projekt könnt ihr über die Toolbox in dem Designer die neue Komponente per Drag & Drop in eure Form ziehen.

🤔 🤔 🤔 Das ist wohl eine verständnisfrage, ich habe das File in das Verzeichnis geladen und im "projektmappenexplorer das projektausgewählt und "vorhandenes Element hinzufügen" gewählt.
Die Datei wurde auch hinzugefügt, aber in der Toolbox erscheint nix was ich auf mein form droppen könnte"???

795 Beiträge seit 2006
vor 16 Jahren

probiers mal mit einem Rebuild des Projektes

Gruß, Christian.

`There are 10 types of people in the world: Those, who think they understand the binary system Those who don't even have heard about it And those who understand "Every base is base 10"`
D
14 Beiträge seit 2007
vor 16 Jahren

in der tat, tztz hatte immer nur ide "projektmappe rebuildet" aber wenn ich das projekt rebuilde geht es. danke...

G
3 Beiträge seit 2007
vor 16 Jahren

Echt geil gemacht!
Habe es mir gerade gezogen und es funktioniert alles super!

Danke! 👍