zoukankan      html  css  js  c++  java
  • richTextBox插入表格

    附件:http://files.cnblogs.com/xe2011/richTextBox_InsertTable.rar

    插入表格

           /// <summary>
            /// 插入表格
            /// </summary>
            /// <param name="richTextBox"></param>
            /// <param name="col"></param>
            /// <param name="row"></param>
            /// <param name="AutoSize">=TRUE:自动设置每个单元格的大小</param>
            private void InsertTable(RichTextBox richTextBox,int col, int row,bool AutoSize)
            {
                StringBuilder rtf = new StringBuilder();
                rtf.Append(@"{
    tf1 ");
    
                //int cellWidth = 1000;//col.1 width =1000
                int cellWidth = 1000; 
    
                if (AutoSize)
                    //滚动条出现时 (richTextBox.ClientSize.Width - 滚动条的宽 /列的个数)*15
                    cellWidth = (richTextBox.ClientSize.Width / row) * 15; //15 当ROW值越大 结果差距越大 
     
                Text =  cellWidth.ToString() ;
                for (int i = 0; i < col; i++)
                {
                    rtf.Append(@"	rowd");
                    for (int j = 1; j <= row; j++)
                        rtf.Append(@"cellx" + (j * cellWidth).ToString());
                    rtf.Append(@"intbl cell 
    ow"); //create row
                }
                rtf.Append(@"pard");
                rtf.Append(@"}");
                richTextBox.SelectedRtf = rtf.ToString();
            }

    扩展的richTextBox

    using System;
    using System.ComponentModel;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;
    
    namespace richTextBoxTableClass
    {
        public class CustomRichTextBox : RichTextBox
        {
    
    ///支持表格正确粘贴
            // P/Invoke declarations
            [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
            private static extern IntPtr LoadLibrary(string path);
    
            private static IntPtr moduleHandle;
    
            protected override CreateParams CreateParams
            {
                get
                {
                    if (moduleHandle == IntPtr.Zero)
                    {
                        moduleHandle = LoadLibrary("msftedit.dll");
                        if ((long)moduleHandle < 0x20)
                        {
                            throw new Win32Exception(Marshal.GetLastWin32Error(), "Could not load Msftedit.dll");
                        }
                    }
    
                    CreateParams createParams = base.CreateParams;
                    createParams.ClassName = "RichEdit50W";
                    if (this.Multiline)
                    {
                        if (((this.ScrollBars & RichTextBoxScrollBars.Horizontal) != RichTextBoxScrollBars.None) &&!base.WordWrap)      
                        {
                            createParams.Style |= 0x100000;
                            if ((this.ScrollBars & ((RichTextBoxScrollBars)0x10)) != RichTextBoxScrollBars.None)
                            {
                                createParams.Style |= 0x2000;
                            }
                        }
                        if ((this.ScrollBars & RichTextBoxScrollBars.Vertical) != RichTextBoxScrollBars.None)
                        {
                            createParams.Style |= 0x200000;
                            if ((this.ScrollBars & ((RichTextBoxScrollBars)0x10)) != RichTextBoxScrollBars.None)
                            {
                                createParams.Style |= 0x2000;
                            }
                        }
                    }
                    if ((BorderStyle.FixedSingle == base.BorderStyle) && ((createParams.Style & 0x800000) != 0))
                    {
                        createParams.Style &= -8388609;
                        createParams.ExStyle |= 0x200;
                    }
                    return createParams;
                }
            }
    
    
        }
    }
    CustomRichTextBox.CS

    调用

            private void button1_Click(object sender, EventArgs e)
            {
                    InsertTable(richTextBox1, 5, 4, false);
                    InsertTable(richTextBox51,5, 4, false);
            }
    View Code
  • 相关阅读:
    平分糖果——BZOJ 1045
    浙大月赛——ZOJ Problem Set 3574
    jsp 自定义标签的写法
    C#扩展方法(转贴)
    window mobile 防止系统休眠代码
    jbpm sql使用动态参数方法
    spring 多数据源配置实现
    原创jquery蒙版控件
    jbpm 错误解决方法
    cas server 配置
  • 原文地址:https://www.cnblogs.com/xe2011/p/3455737.html
Copyright © 2011-2022 走看看