Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 LINQ ADO.NET JavaScript DataGridView GridView AjaxPro DevExpress 面向对象 Extjs XML HTML教程 Oracle jQuery WPF MVC 分页 Office2010 GDI+ Visual C++2010 Dojo MySQL VB.NET WCF4.0 ASPxGridView WinForm textbox Sql2005 cookie Discuz!NT checkbox WCF SQL经典语句 T-SQL F# asp.net VS2008 SQL Ajax DropDownList VS2008新特性 TreeView Access Flex 页面执行时间 字符串 DataSet VB2005 回调 动画 C#时间 游戏 ASP.NET MVC
尚未分类 LINQ教程 Enterprise技术 性能优化/调试 水晶报表与打印 安全与加密 图形图像 文件处理基础教程 Web Services 内置对象 控件示例 正则表达式\采集 ADO.NET 缓存\泛型\线程 XML技术 Url重写\静态页 vs2008综合教程
当前位置: 主页 > ASP.NET教程 > 基础教程 >

C#实现复制,粘贴,剪切,撤销

时间:2009-09-30 08:07来源:未知 作者:admin 点击:

在Windows窗体中添加了一个TextBox,一个MenuStrip控件(添加了四个子项复制粘贴剪切撤销)

using System;
using System.Windows.Forms;

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

        private void Menu_Copy(System.Object sender, System.EventArgs e)
        {
            //确保文本在文本框中已经选定
            if (textBox1.SelectionLength > 0)
                // 复制文本到剪贴板
                textBox1.Copy();
        }

        private void Menu_Cut(System.Object sender, System.EventArgs e)
        {
            // 确保当前文本框中有选定
            if (textBox1.SelectedText != "")
                // 剪切选定的文本至剪贴板
                textBox1.Cut();
        }

        private void Menu_Paste(System.Object sender, System.EventArgs e)
        {
            // 判断剪贴板中是否有文本
            if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
            {
                // 判断文本框中是否有文本选定了
                if (textBox1.SelectionLength > 0)
                {
                    // 询问是否覆盖选定的文本
                    if (MessageBox.Show("你想覆盖选定的文本吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                        // 移动选定文本的位置,即之前选定文本的起始+选定文本的长度
                        textBox1.SelectionStart = textBox1.SelectionStart + textBox1.SelectionLength;
                }
                // 将剪贴板中的文本粘贴至文本框
                textBox1.Paste();
            }
        }

        private void Menu_Undo(System.Object sender, System.EventArgs e)
        {
            // 决定文本框最后的操作是否能撤销
            if (textBox1.CanUndo == true)
            {
                // 撤销最后的操作
                textBox1.Undo();
                // 从该文本框的撤消缓冲区中清除关于最近操作的信息。
                textBox1.ClearUndo();
            }
        }
    }
}

效果如下:


 

 

Tags:WinForm 粘贴
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价
  • 使用委托在对象间传递信息

    使用委托在对象间传递信息...

  • ASP.NET的事件模型

    ASP.NET的事件模型...

  • C#图片压缩算法

    /// summary /// 壓縮圖片 /// /summary /// param name=fileStream圖片流/param /// param n...

  • 值类型的装箱与拆箱浅析

    阅读目录 前言 值类型的装箱 值类型的拆箱 装箱和拆箱实例 结束语 前言 在.Net 中值类型向引用类型的转换以及从引用类型到值类型的转换是需要装箱(boxin...

  • 非反射不转换类型地动态Property赋值、取值

    今天推翻了过去写的ORM,决定过去的代码一句也不Copy,全部重写,所以有了此类。 适用情况: 为一个不确定的对象动态地为某一个未知的Property或多个 P...

  • C#中Dictionary、ArrayList、Hashtable和数组Array

    C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。虽然S...

  • PictureBox内的图片拖动功能

    当 PictureBox内的图片太大,超过PictureBox边框时可以用下面的方法来实现, 通过重绘来实现 : Code bool wselected = f...

  • Directory.GetCurrentDirectory和Application.

    System.IO.Directory.GetCurrentDirectory()方法用于获得应用程序当前工作目录。 System.Windows.Forms....

  • IConvertible接口

    IConvertible 接口 定义特定的方法,这些方法将实现引用或值类型的值转换为具有等效值的公共语言运行库类型。 命名空间: System 程序集: msc...

  • 将枚举类型的数据绑定到控件

    .NET Framework中的数据绑定有几个很酷的功能。你不仅可以将集合、数组、DataTable和DataView对象绑定到列表绑定(list-bound)...

  • 数组求和算法系列

    一直想写一个数组求和算法系列博客,但由于自己算法能力有限,完成不了,只能完成其中简单的部分,难的部分希望有园友愿意和我一起完成。在写这篇博客的过程中借用了别人的...

  • 细说C#构造器

    1.实例构造器和类 构造器是允许将类型的实例化为良好的状态的一种特殊方法。 当创建一个类型的实例时: 1)为实例的字段分配内存。 2)初始化对象的附加字段(类型...

  • 对象的序列化存入数据库,与反序列化

    开发过程中遇到一个问题,我想到的解决方法是将一个dictionary字典如何存如数据库,读出来的时候还是这个字典 然后接触到对象的序列化与反序列化。开始打算序列...

  • const限定修饰符用法总结(常量,指针,迭代器,函数参数,成员函数)

    const限定修饰符用法总结(常量,指针,迭代器,函数参数,成员函数)...

  • 回文算法

    回文:针对于字符串的中间位置两边对应位置相等。对于长度为n的字符串,需要比较的次数为N/2。 用2种方法对该应用实现算法如下: 1:采用字符串的substrin...

  • c# MACD算法实现

    c# MACD算法实现...

  • c#自杀程序的关键方法

    public static void TestForKillMyself() { string bat=@@echooff :tryagain del%1 if...

  • 对泛型进行反射

    今天在用反射的时候突然想到,之前从来没有对泛型对象进行反射,故决定尝试一下 首先要获取某个泛型类的Type,键入如下代码: Typet=Type.GetType...

  • C#遍历文件夹

    DirectoryInfo FileName = new DirectoryInfo( @D:\ ); 2 foreach (DirectoryInfo Nex...

  • .NET对象序列化—TimeSpan

    在 WebServices 中, TimeSpan 不能作为系统的 TimeSpan 作为参数,在客户端会生成新的 TimeSpan 类。 一、问题重现 创建一...

  • .NET对象序列化—IPAddress

    IPAddress 没有默认的构造函数,不能正常序列化。 IPAddrss 支持的构造函数有: 1: public IPAddress(byte[] addre...

  • C# Stream和byte[]之间的转换

    bw.Close(); fs.Close(); } 五. 从文件读取 Stream public Stream FileToStream(string file...