Probleme mit Kontext Menü



  • Hallo!

    Ich generiere auf einem formular ca. 10 Buttons. Jetzt habe ich ein contextMenü gemacht in dem 10 namen zur auswahl stehen. Jedem Button habe ich dieses contextMenü zugewiesen.
    Wie kann ich nun feststellen wenn ich auf einem Button die rechte maustaste klicke um einen namen für den Button auaszusuchen auf welchem button ich mich gerade befinde. dann will ich natätlich diesen ausgewählten namen auf dem jeweiligen button anzeigen, dazu muß ich aber wissen welcher button das ist oder wie ich den anspreche?!?

    wie mach ich das? bzw. geht das überhaupt?

    danke schonmal,
    lg
    l00P



  • Erstelle für alle Buttons denselben Eventhandler.

    private void button_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    	MessageBox.Show( ( sender as Button ).Text );
    }
    


  • ...das konnte ich so implementieren, aber geht das auch wenn ich nicht vorher den button anclicke sondern auf den ungeklickten button mit der rechten maustaste das context manü aufrufe?!? Und wie komme ich von der behandlungsroutine des buttons zur ereignisroutine des contextmenüs??

    und wie erstelle ich eventhandler zur laufzeit? Ich weiß nämlich vorher nicht wiviele buttons ich erzeugen muß zur laufzeit..

    danke nochmal



  • Das funktioniert doch, wenn man auf den ungeklickten Button klickt.

    private void Form_Load(object sender, System.EventArgs e)
    {
    	Button[] b = new Button[10];
    	for( int i = 0; i < b.Length; i++ )
    	{
    		b[i] = new Button();
    		b[i].Location = new Point( 100, 10 + i * 30);
    		b[i].MouseDown += new MouseEventHandler(button_MouseDown);
    		b[i].Text = "Button " + i.ToString();
    		this.Controls.Add( b[i] );
    	}
    }
    
    private void button_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    	if( e.Button == MouseButtons.Right )
    		MessageBox.Show( ( sender as Button ).Text );
    }
    


  • .. herzliche dank, das hilft mir weiter

    lg
    l00P



  • ... ich schon wieder...

    jetzt hab ich das problem das ich ein contextmenü das ich mit dem wizard erstellt habe und welches ja fix an das formular gebunden ist nicht aktivieren kann.

    private void button_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    		{
    			if( e.Button == MouseButtons.Right )
    			{							
    			  // hier würde ich gerne das contextmenü das cm1 heißt aufrufen ?!?	
    
    			}	
    
    		}
    


  • private void button_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    	if( e.Button == MouseButtons.Right )
    		( sender as Button ).ContextMenu = cm1;
    }
    

Log in to reply