Toolbar und Toolbarbuttons zur Laufzeit



  • Servus,
    ich will den User in meinen Programm es ermöglichen das er seine toolbar anpassen, d.h. die ToolbarButtons selbst bestimmen kann. Ich habe mir gedacht, dass ich die Buttons dann zur Laufzeit hinzufüge, z.B. so:

    for( irgendwas)
    {
    ToolBarButton button = new ToolBarButton();
    button.Text = "Test";
    toolbar.buttons.add(button);
    }
    

    aber wie finde ich heraus, welcher knopf gedrückt wurde, da ja alle buttons den selben namen haben?

    danke



  • private void toolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
    {
        switch(toolBar.Buttons.IndexOf(e.Button))
        {
    	    case 0: MessageBox.Show("Button 1"); break;
    	    case 1: MessageBox.Show("Button 2"); break;
    	    case 2: MessageBox.Show("Button 3"); break;
    	    case 3: MessageBox.Show("Button 4"); break;
        }
    }
    


  • die nummern sind wohl in der reihenfolge in der ich die buttons hinzufüge oder?
    Aber das wäre doof, da ich das dann nicht richtig dynamisch machen kann. (Wenn jetzt z.B. User1 den button Neu(index 0) nicht haben will, rückt ja ein anderer button an die stelle)



  • Du kannst auch nach dem Button Text auswählen.

    switch(e.Button.Text)
    {
        case "New": MessageBox.Show("Button New"); break;
        case "Open": MessageBox.Show("Button Open"); break;
    }
    


  • ok, das wäre eine Möglichkeit. Aber wenn man ein Bild auf den Button hat, kann man den Text dann verstecken?


Anmelden zum Antworten