首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clipboard.Set复合

Clipboard.Set复合
EN

Stack Overflow用户
提问于 2015-05-22 22:52:38
回答 4查看 513关注 0票数 2

当尝试复制到剪贴板时,

代码语言:javascript
复制
Clipboard.SetData(DataFormats.Text, "");

代码语言:javascript
复制
Clipboard.SetText("");
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-22 23:03:59

SetText只是SetData的一种方便的方法,只有使用SetText才能使用ANSI

出处

代码语言:javascript
复制
    public static void SetText(string text)
    { 
        ....
        SetText(text, TextDataFormat.UnicodeText); //<------------
    }

    public static void SetText(string text, TextDataFormat format) 
    {
        ....
        SetDataInternal(DataFormats.ConvertToDataFormats(format), text);
    }

    public static void SetData(string format, object data) 
    {
        ....
        SetDataInternal(format, data);
    } 

所以,两者都使用SetDataInternal

票数 2
EN

Stack Overflow用户

发布于 2015-05-22 23:05:31

您使用的格式Text没有指定它是Unicode。正如我们在源代码中所看到的SetText调用SetDataInternal(DataFormats.UnicodeText, data),而第二个示例调用SetDataInternal(DataFormats.Text, data)。

DataFormats.Text指定ANSI编码。它基本上意味着some字符被一些?或类似的字符所取代。在另一个问题/答案中阅读更多关于这种格式的内容:什么是ANSI格式?

票数 2
EN

Stack Overflow用户

发布于 2015-05-22 23:03:36

文档说明了Clipboard.SetText()所做的事情:

UnicodeText数据存储在剪贴板上。

这表明Clipboard.SetText("")等同于Clipboard.SetData(DataFormats.UnicodeText, "");

因此,为了回答您的问题,Clipboard.SetText("")将一个空的unicode文本字符串放入剪贴板,而Clipboard.SetData(DataFormats.Text, "");则在那里存储一个空的ANSI文本字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30406982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档