C#实现自动按下Ctrl+C,或者实现自动复制Datagridview的内容到剪切板也行。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#实现自动按下Ctrl+C,或者实现自动复制Datagridview的内容到剪切板也行。相关的知识,希望对你有一定的参考价值。
参考技术A Clipboard 这个类里有SetText 、SetDataObject等追问我用了,第一次行,第二次复制什么都没有,重启又行了,第二次不行,复制后剪切板为空
追答可以把你那部分的代码发下,应该不会出现复制不成功啊
if(Clipboard.GetData("userData") != null)
//代表可在粘贴
//复制部分
Clipboard.SetData("userData", objUserData);
可以了,可能是其中另外一部分代码影响的。现在每次都能复制了。
本回答被提问者采纳C#实现垂直自动隐藏工具栏的方法
【中文标题】C#实现垂直自动隐藏工具栏的方法【英文标题】:C# way to implement vertical auto-hiding tool bar 【发布时间】:2012-02-10 06:52:27 【问题描述】:我尝试创建的内容与 VS 2008 和 VS 2010 中的“工具箱”非常相似。它将位于我的 MDI 父级的左侧,当用户将鼠标悬停在它上面时会弹出。同样,这就像 VS Toolbox。
我的问题是实现这一点的最佳方法是什么?请记住,我将它放在 MDI 父级的左侧,并且正在使用 VS 2008、C# 和 .NET 3.5。另外,我打算在工具栏中放一个TreeView,所以无论使用什么都必须支持添加TreeView对象。
谢谢!
【问题讨论】:
@Sam:查看我当前解决方案的答案。如果可能的话,我想要一个慢慢弹出的解决方案。有人有这样的解决方案吗? 【参考方案1】:垂直自动隐藏工具栏,根据我在网上和测试中收集的信息,最好使用 ToolStrip 对象来实现,在我的例子中,它停靠在左侧。要给出从中弹出的 TreeView 对象的外观,请添加 ToolStripButton。然后,向 ToolStripButton 添加一个 MouseHover 事件,使 Panel 对象(也停靠在左侧)可见。显然,最好默认使 Panel 对象不可见。然后,为面板添加一个 MouseLeave 事件,这样当用户离开面板时,面板就会再次变得不可见或“弹出”回来。
它没有像 Visual Studio 2008/2010 那样弹出的良好效果,但它具有我需要的基本功能。
这里是 MouseHover 和 MouseLeave 事件的代码。很简单。
private void openPanel1ToolStripButton_MouseHover(object sender, EventArgs e)
if(panel1.Visible == false)
panel1.Visible = true;
private void panel1_MouseLeave(object sender, EventArgs e)
if (panel2.Visible == true)
panel2.Visible = false;
【讨论】:
如果不是滑入滑出,添加一个运行时间较短的计时器。当您使面板可见时,将其宽度 (Size) 设置为一个较小的值,并在每个计时器事件中,将宽度设置为稍宽,直到达到完整尺寸。 (类似于 100cs 的间隔运行一秒钟,所以它分十步打开,每次显示最后宽度的十分之一应该看起来不错)【参考方案2】:看看 SourceForge 上的DockPanel Suite。我在网上看到许多自定义控件试图模仿 VS 工具栏,但没有一个比这个更有效。它的用户评分也很高。
【讨论】:
非常感谢,这个库看起来很棒。我肯定会在其他项目上使用它。不幸的是,我的雇主要求我尽可能少地使用外部库代码,所以我必须自己实现它。以上是关于C#实现自动按下Ctrl+C,或者实现自动复制Datagridview的内容到剪切板也行。的主要内容,如果未能解决你的问题,请参考以下文章
gvim 在编辑(插入)模式下怎么样才能使用ctrl+v和ctrl+c和ctrl+x,来实现剪切复制粘贴。