【问题标题】:Copying a contex into clipboard C#将上下文复制到剪贴板 C#
【发布时间】:2021-05-02 10:39:18
【问题描述】:

我在 stackOF 中找到了这段代码,但它根本不起作用,我无法修复它。 你能告诉我这段代码有什么问题吗?

using System.Windows.Forms;


public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        Clipboard.SetText(textBox1.Text);
    }
}

}

【问题讨论】:

  • doesn't work不是解释问题的好方法。你是什​​么意思?您期望什么以及当前的行为是什么?您是否收到任何异常或错误消息?我强烈建议您先阅读 FAQHow to Ask 几次,然后再进一步了解 Stack Overflow。
  • VS 提供以下错误:严重性代码描述项目文件行抑制状态错误 CS0234 命名空间“剪贴板”中不存在类型或命名空间名称“SetText”(您是否缺少程序集引用?)剪贴板

标签: c# windows performance clipboard


【解决方案1】:

我认为您的问题是因为您将程序命名为与将文本复制到剪贴板的类同名

看看这段代码

using System.Windows.Forms;

namespace Clipboard
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Clipboard.SetText(textBox1.Text); This will not work if you named your namespace Clipboard !
            System.Windows.Forms.Clipboard.SetText(textBox1.Text); // you should use this way to confirm you need to access to clipboard not your namespace
        }
    }
}

我用同名的类命名我的程序(剪贴板) 我现在有问题,因为编译器在你的程序和复制文本的类之间混淆了 所以最好的方法是每次创建程序时指定一个唯一的名称:)

【讨论】:

  • 很好看。我同意 - 存在冲突。
  • Bravo 我的兄弟...正是...我想知道您很快就发现了这个问题...非常感谢兄弟!!
  • @mohammadhoseinsheikhi 很高兴问题已经解决:)
【解决方案2】:

与您自己的名称空间存在冲突。您可以根据@WaleedKhaled 的回答,使用完整声明明确使用确切的 Clipboard.SetText() 方法:

System.Windows.Forms.Clipboard.SetText(textBox1.Text);

或者你的例子顶部的 using 语句说:

using WinForms = System.Windows.Forms; 

那么你的行会变成:

WinForms.Clipboard.SetText(textBox1.Text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多