keine überladung für die Spiele Delegat " system.eventhandler' MouseDown MouseUp MouseMove

Habe ich zum erstellen von Etiketten in eine form abhängig von einem string[] als "descripcio". Die einzelnen parameter von "descripcio" entspricht einem neuen label.
Jedes Etikett muss drei Ereignisse MouseDown, MouseUp und MouseMove. Die gleichen Ereignisse, die für alle Etiketten. Der code ist:

public FormEquip(string[] descripcio)
{
    InitializeComponent();
    this.descripcio = descripcio;
    inicialitza_descripcions();
}

private void inicialitza_descripcions()
{
    for (int i = 0; i < this.descripcio.Length; ++i)
    {
        System.Windows.Forms.Label Label = new System.Windows.Forms.Label();
        crea_label(ref Label2, 100, 50 * (i + 1), "D" + i, this.descripcio[i], 2 * i + 2);
        this.Controls.Add(Label);
    }
}

private void crea_label(ref System.Windows.Forms.Label Label, int x, int y, string nom, string text, int index)
{
    Label.AutoSize = true;
    Label.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    Label.Location = new System.Drawing.Point(x, y);
    Label.Name = nom;
    Label.TabIndex = index;
    Label.Text = text;
    Label.Visible = true;
    Label.MouseDown += new System.EventHandler(Label_MouseDown);
    Label.MouseUp += new System.EventHandler(Label_MouseUp);
    Label.MouseMove += new System.EventHandler(Label_MouseMove);
}

private void Label_MouseDown(object sender, MouseEventArgs e)
{  
    this.isDragging = true;
}  

private void Label_MouseUp(object sender, MouseEventArgs e)
{
    this.isDragging = false;  
}  

private void Label_MouseMove(object sender, MouseEventArgs e)
{
    Control ctrl = sender as Control;  
    if (this.isDragging)  
    {  
        Point p1 = ctrl.PointToScreen(e.Location);  
        Point p2 = ctrl.Parent.PointToClient(p1);  
        ctrl.Location = p2;  
    }  
}

Dieser code generieren "keine überladung für die "Label_MouseDown/Label_MouseUp/Label_MouseMove-Spiele" Delegat " system.eventhandler'" Fehler in drei Zeilen:

    Label.MouseDown += new System.EventHandler(Label_MouseDown);
    Label.MouseUp += new System.EventHandler(Label_MouseUp);
    Label.MouseMove += new System.EventHandler(Label_MouseMove);

Der ersten Zeile "keine überladung für die "Label_MouseDown-Spiele" Delegat " system.eventhandler'".
In der zweiten Zeile "keine überladung für die "Label_MouseUp-Spiele" Delegat " system.eventhandler'".
Die Dritte Zeile "keine überladung für die "Label_MouseMove-Spiele" Delegat " system.eventhandler'".

Bevor zu diesem Beitrag schreiben, ich habe gesehen, dass mehrere Beiträge mit ähnlichen Fehlermeldung. Ich habe versucht, Folgen die Erklärungen, die ich Lesen konnte, dass Beiträge, aber ich Schaffe es nicht, die Lösung. Vielen Dank für alles.

Edit:

Endlich, ich muss nur ändern Sie diesen Teil des Codes:

Label.MouseDown += new System.EventHandler(Label_MouseDown);
Label.MouseUp += new System.EventHandler(Label_MouseUp);
Label.MouseMove += new System.EventHandler(Label_MouseMove);

für:

Label.MouseDown += new System.Windows.Forms.MouseEventHandler(Label_MouseDown);
Label.MouseUp += new System.Windows.Forms.MouseEventHandler(Label_MouseUp);
Label.MouseMove += new System.Windows.Forms.MouseEventHandler(Label_MouseMove);

Das ist alles. Dank HuorSwords.

InformationsquelleAutor negu | 2013-04-17

Schreibe einen Kommentar