Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何允许用户从列表框复制项目并粘贴到windows窗体之外_C# - Fatal编程技术网

C# 如何允许用户从列表框复制项目并粘贴到windows窗体之外

C# 如何允许用户从列表框复制项目并粘贴到windows窗体之外,c#,C#,我知道,对于数据网格,用户可以选择项目,复制它们,然后将它们粘贴到表单之外。有没有一种方法可以通过列表框实现这一点?看起来您可以在列表框中选择多个项目,但如果您尝试将所选值粘贴到表单之外,它似乎不会实际复制该项目。当用户单击ctrl+c将项目放入剪贴板时,您可以捕获该事件 此代码用于具有多选功能的列表框MultiSimple=true private void ListBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)

我知道,对于数据网格,用户可以选择项目,复制它们,然后将它们粘贴到表单之外。有没有一种方法可以通过列表框实现这一点?看起来您可以在列表框中选择多个项目,但如果您尝试将所选值粘贴到表单之外,它似乎不会实际复制该项目。

当用户单击ctrl+c将项目放入剪贴板时,您可以捕获该事件

此代码用于具有多选功能的列表框
MultiSimple=true

private void ListBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
        if (e.Control && e.KeyCode == Keys.C)
        {
            System.Text.StringBuilder copy_buffer = new System.Text.StringBuilder();
            foreach (object item in ListBox1.SelectedItems)
                copy_buffer.AppendLine(item.ToString());
            if (copy_buffer.Length > 0)
                Clipboard.SetText(copy_buffer.ToString());
        }
    }
要通过Ctrl+C复制所选项目,请使用以下代码:

private void LstVehicles_KeyDown(object sender, KeyEventArgs e)
{
   if (e.Control && (e.KeyCode == Keys.C))
   {
      Clipboard.SetText(this.yourListBoxName.SelectedItem.ToString());
   }
}

“将它们粘贴到表单之外”是什么意思?@ChrisDunaway如果他们有word文档,他们将能够粘贴复制到表单中的选定值。很高兴为您提供帮助!!在.Net的较新版本中,您可能会在剪贴板.SetText()上遇到问题(随机错误并不意味着什么)。改为使用剪贴板.SetDataObject()。