黑马程序员技术交流社区

标题: .NET如何操作剪贴板 [打印本页]

作者: iamheima    时间: 2012-9-20 19:59
标题: .NET如何操作剪贴板
在线等。。。
作者: 许庭洲    时间: 2012-9-21 08:05
//判断textbox1控件上有没有文本被选择
if(this.textBox1.SelectionLength >0)
{
          Clipboard.SetDataObject(this.textBox1.SelectedText);//有则把选择的文本放到剪贴板上
          this.textBox1.SelectedText = "";//并且把选择的文本清空,否则就无法达到剪切的目的
}
作者: 孔德智    时间: 2012-9-21 10:47
ublic static bool SetTextToClipboard(string strText)
        {
            if (strText != null && strText.Length > 0)
            {
                try
                {
                    Clipboard.SetDataObject(strText, true);
                    return true;
                }
                catch (Exception e)
                {
                    MessageBox.Show("失败:" + strText + ":" + e.Message);
                }
            }
            return false;
        }
        /// <summary>
        /// 从操作系统剪切板获得文本
        /// </summary>
        /// <returns>获得的文本,若操作失败则返回空对象</returns>
        public static string GetTextFromClipboard()
        {
            try
            {
                return Clipboard.GetData(DataFormats.Text).ToString();

            }
            catch
            { }
            return null;
        }

/// <summary>
    /// 操作系统剪切板处理模块,提供的方法为静态函数
    /// </summary>
    /// <example>
    /// C#语言中使用该类的例子,从操作系统剪切板获得纯文本数据
    /// // 判断操作系统剪切板是否保存了纯文本数据
    /// if( ClipboardHandler.CanGetText())
    /// {
    ///        // 返回获得的纯文本数据
    ///        return ClipboardHandler.GetTextFromClipboard();
    /// }
    ///
    /// 向操作系统剪切板设置纯文本数据
    /// string strText = "要设置的纯文本数据";
    /// ClipboardHandler.SetTextToClipboard( strText );
    /// </example>
    public class ClipboardHandler
    {

        /// <summary>
        /// 是否可以从操作系统剪切板获得文本
        /// </summary>
        /// <returns>true 可以从操作系统剪切板获得文本,false 不可以</returns>
        public static  bool CanGetText()
        {
            // Clipboard.GetDataObject may throw an exception...
            try
            {
                System.Windows.Forms.IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
                return data != null && data.GetDataPresent(System.Windows.Forms.DataFormats.Text);
            }
            catch (Exception e)
            {
                return false;
            }
        }
//
//        /// <summary>
//        /// 是否可以向操作系统剪切板设置文本
//        /// </summary>
//        /// <returns></returns>
//        public static bool CanSetText()
//        {
//            return true;
//        }

        /// <summary>
        /// 向操作系统剪切板设置文本数据
        /// </summary>
        /// <param name="strText">文本数据</param>
        /// <returns>操作是否成功</returns>
        public static  bool SetTextToClipboard(string strText)
        {
            if (  strText != null && strText.Length > 0 )
            {
                try
                {
                    System.Windows.Forms.DataObject dataObject = new System.Windows.Forms.DataObject();
                    dataObject.SetData(System.Windows.Forms.DataFormats.UnicodeText  , true, strText );
                    System.Windows.Forms.Clipboard.SetDataObject(dataObject, true);
                    return true;
                }
                catch
                {
                    
                }
            }
            return false;
        }

        /// <summary>
        /// 从操作系统剪切板获得文本
        /// </summary>
        /// <returns>获得的文本,若操作失败则返回空对象</returns>
        public static  string GetTextFromClipboard()
        {
            try
            {
                System.Windows.Forms.IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
                if( data.GetDataPresent(System.Windows.Forms.DataFormats.UnicodeText))
                {
                    string strText = ( string) data.GetData( System.Windows.Forms.DataFormats.UnicodeText);
                    return strText;
                }
            }
            catch
            {}
            return null;
        }


作者: 狄琛林    时间: 2012-9-21 17:47
window.clipboardData.setData("text",value)
window.clipboardData.getData("text")
window.clipboardData.clearData("text")
http://a.timewe.net/cdr/moreDocs.com/view/2008-10/1/view_1663.htm

webForm编程中你要操作剪贴板,请您注意剪贴板是你的本地电脑的内存,不是服务器的内存,服务器的内存的剪贴板你是不能操作的。而对本地机器的内存进行操作就要使用,本地的浏览器端技术,也就是javascript等浏览器脚步技术,而不是用asp.net的服务器端技术。你去学学javascript吧,就会了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2