Hi,
ich erstelle zur Laufzeit Buttons an einem Toolstrip. Diese Buttons rufen alle das gleiche MouseDown Event auf. Wie kann ich denn später in meinem DragDrop Event prüfen, welcher Button geklickt wurde?
Meine Klasse Button sieht folgendermaßen aus:
Die Methode wo ich einen neuen Button hinzufüge folgendermaßen:
Und meine MouseDown, DragEnter und DragDrop sehen folgendermaßen aus:
Ich möchte im DragDrop Event jetzt einfach abfragen, welcher button geklickt wurde. Also der typ von Klasse Versuch. Kann mir da jemand weiterhelfen.
Ich hoffe, ich habe es einigermaßen verständlich erklärt.
LG
sailer
ich erstelle zur Laufzeit Buttons an einem Toolstrip. Diese Buttons rufen alle das gleiche MouseDown Event auf. Wie kann ich denn später in meinem DragDrop Event prüfen, welcher Button geklickt wurde?
Meine Klasse Button sieht folgendermaßen aus:
Code:
class Versuch: System.Windows.Forms.ToolStripButton
{
public string typ;
}
Die Methode wo ich einen neuen Button hinzufüge folgendermaßen:
Code:
public static void addButton()
{
Versuch newButton = new Versuch();
string type = xmlNode.Name;
newButton.typ = type;
MainProgram.mainForm.toolStrip.Items.Add(newButton);
newButton.MouseDown += new System.Windows.Forms.MouseEventHandler(MainProgram.mainForm.element_MouseDown);
}
Und meine MouseDown, DragEnter und DragDrop sehen folgendermaßen aus:
Code:
private void element_MouseDown(object sender, MouseEventArgs e)
{
this.panel.DragDrop += new System.Windows.Forms.DragEventHandler(this.elementPanel_DragDrop);
this.panel.DragEnter += new System.Windows.Forms.DragEventHandler(this.elementPanel_DragEnter);
this.DoDragDrop(new DataObject(), DragDropEffects.Copy | DragDropEffects.Move);
}
private void elementPanel_DragEnter(object sender, DragEventArgs e)
{
if ((e.KeyState & 8) == 8)
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.Move;
}
private void elementPanel_DragDrop(object sender, DragEventArgs e)
{
Versuch type = (Versuch)sender; //So habe ich es versucht. Funktioniert aber nicht
BeispielElement neuesElement = new BeispielElement ();
neuesElement.typ = Convert.ToString(type); //So habe ich es versucht. Funktioniert aber nicht
neuesElement.Location = this.PointToClient(new Point(e.X - 107, e.Y - 52));
this.panel.Controls.Add(neuesElement);
this.panel.DragDrop -= new System.Windows.Forms.DragEventHandler(this.elementPanel_DragDrop);
this.panel.DragEnter -= new System.Windows.Forms.DragEventHandler(this.elementPanel_DragEnter);
}
Ich möchte im DragDrop Event jetzt einfach abfragen, welcher button geklickt wurde. Also der typ von Klasse Versuch. Kann mir da jemand weiterhelfen.
Ich hoffe, ich habe es einigermaßen verständlich erklärt.
LG
sailer