首页 新闻 搜索 专区 学院

C# Clipboard.Clear()的问题

0
悬赏园豆:15 [待解决问题]

菜鸟请请教高手,在C#中我用Clipboard.Clear(),清空了剪贴板,可是我复制几次之后,剪贴板上的内容也会复制好几次呢。求教,多谢!

   private void button2_Click(object sender, EventArgs e)
        {
            Clipboard.Clear();
            for (int i = 0; i < listBox1.Items.Count; i++)
            {

                s += listBox1.Items[i].ToString() + '\n';

            }
           
            try
            {

                Clipboard.SetDataObject(s, true, 1, 9999);


            }
            catch (Exception ex)
            {
                MessageBox.Show("出错了:{0}",ex.Message);
            }
            finally { MessageBox.Show("已复制!"); }

问题补充: 我点击复制按钮,剪贴板上的内容怎么不是先清空,再复制一次哦。 非常感谢,我会试试的。不过我后来用Clipboard.SetDataObject(s, false); 就可以了。
tenheng的主页 tenheng | 初学一级 | 园豆:185
提问于:2010-11-28 23:59
< >
分享
所有回答(2)
0

把你的s声明放到方法里面去,我的理解是s没有释放,所以上次复制的内容会残留在s中,所以你在复制时,s的变量执行的是上次的数据+你复制的数据,因此你的复制结果是越来越多。而你虽然清空了剪贴板,但是两次的数据又会重新被你放到了剪贴板中,因此出现了所说的现象。

橘子西瓜 | 园豆:213 (菜鸟二级) | 2010-11-29 08:33
0

同意楼上,而且你把s的释放动作和剪切版清空的动作放到finally里面最好

茂茂 | 园豆:2860 (老鸟四级) | 2010-11-29 09:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册