C# 委托指令C出错#

C# 委托指令C出错#,c#,C#,我是C#新手,有很多困难,但现在我仍在尝试将eventhandler添加到声明的控件中,就像变量一样,但如果我使用委托指令,我无法放置此事件,因为当我使用声明时: private delegate void listView1_MouseUp(object sender, MouseEventArgs e) 我在这个论坛上看到的一个过程中出现了很多错误,但我会把所有的过程都告诉你们 private void Form1_Load(object sender, Event

我是C#新手,有很多困难,但现在我仍在尝试将eventhandler添加到声明的控件中,就像变量一样,但如果我使用委托指令,我无法放置此事件,因为当我使用声明时:

  private delegate void  listView1_MouseUp(object sender, MouseEventArgs e)     
我在这个论坛上看到的一个过程中出现了很多错误,但我会把所有的过程都告诉你们

    private void Form1_Load(object sender, EventArgs e)
    {

        // Set the view to show details.
        listView1.View = View.Details;
        // Allow the user to edit item text.
        listView1.LabelEdit = true;
        // Allow the user to rearrange columns.
        listView1.AllowColumnReorder = true;

        // Select the item and subitems when selection is made.
        listView1.FullRowSelect = false;
        // Display grid lines.
        listView1.GridLines = true;

        // Sort the items in the list in ascending order.
        listView1.Sorting = SortOrder.Ascending;

        //Hide Column Header
        listView1.HeaderStyle = ColumnHeaderStyle.None;

        // Create three items and three sets of subitems for each item.
        ListViewItem[] ItemsView = new ListViewItem[Quant_Items];

        while (Item_Number <= (Quant_Items - 1))
        {

            ItemsView[Item_Number] = new ListViewItem(Item_name + Item_Number);

            while (Sub_Item <= (Quant_SubItems - 1))
            {
                ItemsView[Item_Number].SubItems.Add("SubItem" + Sub_Item);

                Sub_Item++;
            }

            Item_Number++;

        }

        Sub_Item = 0;

        while (Sub_Item <= (Quant_SubItems - 1))
        {
            listView1.Columns.Add("Coluna" + Sub_Item);

            Sub_Item++;
        }


        //Add the items to the ListView.
        listView1.Items.AddRange(ItemsView);

        //Autosize ListView
        listView1.Bounds = new Rectangle(new Point(10, 10), new Size(Quant_SubItems * 70, Quant_Items * 18));

        // Add the ListView to the control collection.
        this.Controls.Add(listView1);
        listView1.MouseUp += new EventHandler(listView1_MouseUp);
    }

    //____________________________________________________________________

    private delegate void  listView1_MouseUp(object sender, MouseEventArgs e)
    {

        ListViewHitTestInfo i = listView1.HitTest(e.X, e.Y);
        SelectedLSI = i.SubItem;
        if (SelectedLSI == null)
            return;

        int border = 0;
        switch (listView1.BorderStyle)
        {
            case BorderStyle.FixedSingle:
                border = 1;
                break;
            case BorderStyle.Fixed3D:
                border = 2;
                break;
        }

        int CellWidth = SelectedLSI.Bounds.Width;
        int CellHeight = SelectedLSI.Bounds.Height;
        int CellLeft = border + listView1.Left + i.SubItem.Bounds.Left;
        int CellTop = listView1.Top + i.SubItem.Bounds.Top;
        // First Column
        if (i.SubItem == i.Item.SubItems[0])
            CellWidth = listView1.Columns[0].Width;

        TxtEdit.Location = new Point(CellLeft, CellTop);
        TxtEdit.Size = new Size(CellWidth, CellHeight);
        TxtEdit.Visible = true;
        TxtEdit.BringToFront();
        TxtEdit.Text = i.SubItem.Text;
        TxtEdit.Select();
        TxtEdit.SelectAll();
    }
    private void listView2_MouseDown(object sender, MouseEventArgs e)
    {
        HideTextEditor();
    }
    private void listView2_Scroll(object sender, EventArgs e)
    {
        HideTextEditor();
    }
    private void TxtEdit_Leave(object sender, EventArgs e)
    {
        HideTextEditor();
    }
    private void TxtEdit_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
            HideTextEditor();
    }
    private void HideTextEditor()
    {
        TxtEdit.Visible = false;
        if (SelectedLSI != null)
            SelectedLSI.Text = TxtEdit.Text;
        SelectedLSI = null;
        TxtEdit.Text = "";
    }

}
private void Form1\u加载(对象发送方,事件参数e)
{
//将视图设置为显示详细信息。
listView1.View=View.Details;
//允许用户编辑项目文本。
listView1.LabelEdit=true;
//允许用户重新排列列。
listView1.AllowColumnReorder=true;
//进行选择时选择项目和子项目。
listView1.FullRowSelect=false;
//显示网格线。
listView1.GridLines=true;
//按升序对列表中的项目进行排序。
listView1.Sorting=SortOrder.升序;
//隐藏列标题
listView1.HeaderStyle=ColumnHeaderStyle.None;
//为每个项目创建三个项目和三组子项目。
ListViewItem[]ItemsView=新建ListViewItem[Quant_Items];
而(项目编号只需使用此项:

private void listView1_MouseUp(object sender, MouseEventArgs e)
{
    ...
}
delegate
关键字不属于方法声明,在该上下文中无效。

只需使用以下内容:

private void listView1_MouseUp(object sender, MouseEventArgs e)
{
    ...
}

delegate
关键字不属于方法声明,在该上下文中无效。

处理事件时,必须提供与此事件预期的委托类型匹配的处理程序。Loosley说,您需要一个具有处理程序预期的相同签名的方法

对于
MouseUp
,您需要提供
MouseEventHandler
,请参阅

您需要将事件订阅更改为

listView1.MouseUp += new MouseEventHandler(listView1_MouseUp);
然后将处理程序的签名更改为

private void listView1_MouseUp(object sender, MouseEventArgs e) { /*..*/}

处理事件时,必须提供一个与此事件预期的委托类型匹配的处理程序。Loosley说,您需要一个具有处理程序预期的相同签名的方法

对于
MouseUp
,您需要提供
MouseEventHandler
,请参阅

您需要将事件订阅更改为

listView1.MouseUp += new MouseEventHandler(listView1_MouseUp);
然后将处理程序的签名更改为

private void listView1_MouseUp(object sender, MouseEventArgs e) { /*..*/}

为什么要在该方法定义中添加
delegate
?您希望它做什么?您的方法应该被定义为
private void listView1\u MouseUp(对象发送者,MouseEventArgs e)
,并且您可以像
listView1.MouseUp+=new MouseEventHandler(listView1\u MouseUp)那样连接事件
CodeCaster:我希望创建一个带有事件listView1\u MouseUp的控件,但如果我不使用委托,则会出现此错误:“listView1\u MouseUp的重载与委托的“EventHandler”WinFormsDemoApp匹配”因此,我在本论坛中看到了一种解决此错误的方法,将委托放入声明事件中。Rob,我曾尝试过这种方法,但我之前所说的错误CS0123“listView1\u MouseUp的无重载与委托的EventHandler WinFormsDemoApp匹配”,出现。您为什么在该方法定义中放置
委托
?您希望它做什么?您的方法应定义为
私有无效列表视图1_MouseUp(对象发送方,MouseEventArgs e)
,并连接事件,如
列表视图1.MouseUp+=new MouseEventHandler(列表视图1_MouseUp)
CodeCaster:我希望创建一个带有事件listView1\u MouseUp的控件,但如果我不使用委托,则会出现此错误:“listView1\u MouseUp的重载与委托的“EventHandler”WinFormsDemoApp匹配”因此,我在这个论坛中看到了一种解决此错误的方法,将委托放入声明事件中。Rob,我曾尝试过这种方法,但我之前如何说错误,出现了CS0123“没有重载,因为'listView1_MouseUp'匹配委托'EventHandler'WinFormsDemoApp”。您好,我尝试过这种方法,但我之前如何说错误,CS0123出现“listView1\u MouseUp”的无重载匹配委托“EventHandler”WinFormsDemoApp”。您好,我尝试过这种方式,但我之前说的错误CS0123“listView1\u MouseUp的无重载匹配委托“EventHandler”WinFormsDemoApp。您好,我尝试过这种方式,但我之前说的错误CS0123出现了“listView1\u MouseUp”没有重载匹配代理“EventHandler”WinFormsDemoApp”,出现。您是否执行了我在回答中提到的第一个更改?
+=新建MouseEventHandler..
?您好,我尝试过这种方法,但我前面说的错误是:“listView1\u MouseUp”没有重载匹配代理“EventHandler”WinFormsDemoApp,出现。您是否执行了我在回答中提到的第一个更改?
+=new MouseEventHandler..