复制粘贴和剪切点击在当前上下文中不存在

本文关键字:上下文 不存在 复制 | 更新日期: 2023-09-27 18:18:32

我以编程方式创建一个上下文菜单,以便在我的数据网格上右键单击选项。下面是我的代码:

    public partial class Form1 : Form
{
    //string fileExcel;
    public Form1()
    {
        InitializeComponent();
        fillCari();
        FillCombo();
        ContextMenuStrip mnu = new ContextMenuStrip();
        ToolStripMenuItem mnuCopy = new ToolStripMenuItem("Copy");
        ToolStripMenuItem mnuCut = new ToolStripMenuItem("Cut");
        ToolStripMenuItem mnuPaste = new ToolStripMenuItem("Paste");
        //Assign event handlers
        mnuCopy.Click += new EventHandler(mnuCopy_Click);
        mnuCut.Click += new EventHandler(mnuCut_Click);
        mnuPaste.Click += new EventHandler(mnuPaste_Click);
        //Add to main context menu
        mnu.Items.AddRange(new ToolStripItem[] { mnuCopy, mnuCut, mnuPaste });
        //Assign to datagridview
        dataGridView1.ContextMenuStrip = mnu;

    }

这个特定的块,我一直得到它在当前上下文中不存在的错误。知道为什么吗?

mnuCopy.Click += new EventHandler(mnuCopy_Click);
        mnuCut.Click += new EventHandler(mnuCut_Click);
        mnuPaste.Click += new EventHandler(mnuPaste_Click);

更新问题:我从上下文菜单中创建了条带,但不知道如何实现复制命令。

public partial class Form1 : Form
{
    //string fileExcel;
    public Form1()
    {
        InitializeComponent();
        fillCari();
        FillCombo();
        ContextMenuStrip mnu = new ContextMenuStrip();
        dataGridView3.ContextMenuStrip = mnu;
    }

private void copyToolStripMenuItem_Click(object sender, EventArgs e)
    {
    }
    private void cutToolStripMenuItem_Click(object sender, EventArgs e)
    {
    }
    private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
    {
    }

复制粘贴和剪切点击在当前上下文中不存在

我已经想了一段时间了。希望它能在将来对任何人有所帮助。记住,在创建你的contextMenuStrip并添加一个"copy"字段到strip后,你将把它绑定到dataGridView。这是通过进入上下文菜单的属性并查找dataGridView名称并将其绑定到它来完成的。之后,在contextMenu的属性中打开click事件,并在其中添加以下代码:

 private void copyToolStripMenuItem_Click(object sender, EventArgs e)
    {
        dataGridView3.Select();
        DataObject o = dataGridView3.GetClipboardContent();
        Clipboard.SetDataObject(o);
    }

你现在应该有你的右键复制按钮工作

对于click事件,您需要事件处理程序:

  // event click
  mnuCopy.Click += new EventHandler(mnuCopy_Click);
  mnuCut.Click += new EventHandler(mnuCut_Click);
  mnuPaste.Click += new EventHandler(mnuPaste_Click);
  // event handler method
  void mnuPaste_Click(object sender, EventArgs e) {
    // paste logic
  }
  void mnuCut_Click(object sender, EventArgs e) {
    // cut logic
  }
  void mnuCopy_Click(object sender, EventArgs e) {
    // copy logic
  }