精华内容
下载资源
问答
  • 一个WinForm文本编辑器控件
    2021-06-13 17:20:34

    WinForm 上的富文本编辑器简直不要太少,虽然有 RichEdit,但是这个鬼极难用而且复杂,在插入图片和表格的时候简直抓狂,还要理解复杂的 RTF 格式。

    我希望有一个文本控件,包括基本的格式设置,图片表格插入等,能够自定义打开文件,保存和插入图片等功能,并且它的依赖项要尽可能少,因为是 WinForm 控件,也不用需要跨 Linux 和 Osx 平台,只用在 Windows 下保持兼容就行。这么一来,似乎并没有好的免费控件可用了 ...

    但是,Js 的这类控件就比比皆是了,有没有办法移到 C# WinForm 上来用呢,答案当然是 YES!

    首先要显示 HTML页面和JS的执行,必须要由 WebBrowser 控件承载,所以我们的整个编辑器都会在 WebBrowser 中呈现。接下来是编辑器控件了,尽量轻量级,最好是美观点,文档全面,接口丰富的,我找到我用过的一款。

    接下来是编辑器的界面了,创建一个 HTML 页面,呈现编辑器,并设置编译方式为嵌入的资源,将所有的脚本文件内容全部和样式内容写在这个 HTML 页面中,这样一来,页面可能达到惊人的几百 KB,不过这没关系,除了脚本之外,还会有字体资源,关于字体资源如何嵌入在 CSS 中,可以通过下列方式:

    @font-face {

    font-family: "name";

    font-style: normal;

    font-weight: normal;

    src: url(data:font/truetype;charset=utf-8;base64,XXX);

    }

    需要注意的是 WebBrowser 是 IE 核心,所以只需要 eot 格式的字体即可。关于如何将字体生出你个 Base64 字符串,猛击 http://www.motobit.com/util/base64-decoder-encoder.asp

    编辑器的事件,我们写成接口,由调用方自行实,分别是保存按钮、打开文件按钮、插入图片按钮,异常等事件。

    public interface IKBrowserEventListener

    {

    void onSaveClicked();

    void onOpenFileClicked();

    void onInsertImageClicked();

    void onError(Exception ex);

    }

    如何直接使用 WebBrowser 控件的话,会有一些奇怪的问题,比如阻止脚本错误执行的对话框依旧会执行 ... 可是直接使用 COM+ 接口 IWebBrowser2,需要引用 Microsoft Internet Controls。

    public class KBrowser : System.Windows.Forms.WebBrowser

    {

    private SHDocVw.IWebBrowser2 Iwb2;

    public KBrowser()

    {

    NewWindow += KBrowser_NewWindow;

    }

    private void KBrowser_NewWindow(object sender, System.ComponentModel.CancelEventArgs e)

    {

    KBrowser kb = sender as KBrowser;

    string url = kb.StatusText;

    Navigate(url);

    e.Cancel = true;

    }

    protected override void AttachInterfaces(object nativeActiveXObject)

    {

    Iwb2 = (SHDocVw.IWebBrowser2)nativeActiveXObject;

    Iwb2.Silent = true;

    base.AttachInterfaces(nativeActiveXObject);

    }

    protected override void DetachInterfaces()

    {

    Iwb2 = null;

    base.DetachInterfaces();

    }

    }

    接下来编辑器控件可以用用户控件,拖一个 KBrowser即可,Dock 为 Fill 铺满整个控件。它至少拥有下列属性:

    ///

    /// 编辑器的事件监听器

    ///

    public IKBrowserEventListener KBrowserEventListener { get; set; }

    ///

    /// 获取或设置编辑器中Html值

    ///

    public string Html

    {

    get

    {

    try

    {

    return kBrowser1.Document.InvokeScript("getHtml", null).ToString();

    }

    catch (Exception ex)

    {

    onError(ex);

    return "";

    }

    }

    set

    {

    try

    {

    kBrowser1.Document.InvokeScript("setHtml", new string[] { value });

    }

    catch (Exception ex)

    {

    onError(ex);

    }

    }

    }

    在这个 Html 的属性中,包括了 JS 和 C# 的互调用代码,这里是在 C# 中调用 JS 的一个方法,并且一个有返回值但无参数,一个有参数但无返回值。

    如果在 JS 里调用 C#,需要将类设置为 ComVisible(true),应用到方法级不知是否也可以,没试过。然后 window.external.XXX() 的方式调用,XXX 是 C# 的方法。有没有参看重载就知道了。

    在编辑器控件 OnLoad 时加载 Html 编辑器,因为是嵌入的资源,所以不是通过 File IO 的方式。

    private void KEditor_Load(object sender, EventArgs e)

    {

    try

    {

    Stream sm = Assembly.GetExecutingAssembly().GetManifestResourceStream("Knote.Widgets.Resources.editor.html");

    byte[] bs = new byte[sm.Length];

    sm.Read(bs, 0, (int)sm.Length);

    sm.Close();

    UTF8Encoding con = new UTF8Encoding();

    string str = con.GetString(bs);

    kBrowser1.DocumentText = str;

    }

    catch (Exception ex)

    {

    onError(ex);

    }

    }

    然后添加一些方法供 JS 调用,基本就是上述接口中的方法,调用前一定要判断是否空指针。

    ///

    /// 保存按钮点击的事件,请不要调用,而是使用监听器

    ///

    public void onSaveButtonClick()

    {

    if (KBrowserEventListener != null)

    KBrowserEventListener.onSaveClicked();

    }

    ///

    /// 打开文件按钮点击的事件,请不要调用,而是使用监听器

    ///

    public void onOpenFileButtonClick()

    {

    if (KBrowserEventListener != null)

    KBrowserEventListener.onOpenFileClicked();

    }

    ///

    /// 插入图片按钮点击的事件,请不要调用,而是使用监听器

    ///

    public void onInsertPictureButtonClick()

    {

    if (KBrowserEventListener != null)

    KBrowserEventListener.onInsertImageClicked();

    }

    插入普通文本和插入 HTML 源代码。

    ///

    /// 插入一个节点,它将由 div 元素包裹

    ///

    ///

    public void InsertNode(string html)

    {

    try

    {

    kBrowser1.Document.InvokeScript("insertNode", new string[] { html });

    }

    catch (Exception ex)

    {

    onError(ex);

    }

    }

    ///

    /// 插入文本

    ///

    ///

    public void InsertText(string text)

    {

    try

    {

    kBrowser1.Document.InvokeScript("insertText", new string[] { text });

    }

    catch (Exception ex)

    {

    onError(ex);

    }

    }

    为什么是 insertText 和 insertNode,这个是 JS 控件决定的,知道流程后,就可以封装任意编辑器了,最终完成效果如下,并且设计阶段也是所见即所得。

    e9b35654264e

    WinForm 编辑器

    更多相关内容
  • Winform文本控件

    2022-03-16 23:51:36
    WPF文本控件,如图 代码实现 namespace InsertTextW32Target { partial class Target { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel....

    WPF文本控件,如图
    在这里插入图片描述
    代码实现

    namespace InsertTextW32Target
    {
        partial class Target
        {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.IContainer components = null;
    
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            #region Windows Form Designer generated code
    
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.tbTarget = new System.Windows.Forms.TextBox();
                this.rtbTarget = new System.Windows.Forms.RichTextBox();
                this.tbTargetMultiLine = new System.Windows.Forms.TextBox();
                this.lblSingleLineTextBox = new System.Windows.Forms.Label();
                this.lblMultilineTextBox = new System.Windows.Forms.Label();
                this.lblRichTextBox = new System.Windows.Forms.Label();
                this.checkBox1 = new System.Windows.Forms.CheckBox();
                this.checkBox2 = new System.Windows.Forms.CheckBox();
                this.checkBox3 = new System.Windows.Forms.CheckBox();
                this.SuspendLayout();
                // 
                // tbTarget
                // 
                this.tbTarget.AccessibleDescription = "Target TextBox";
                this.tbTarget.AccessibleName = "tbTarget";
                this.tbTarget.AllowDrop = true;
                this.tbTarget.Location = new System.Drawing.Point(119, 223);
                this.tbTarget.MaxLength = 2;
                this.tbTarget.Name = "tbTarget";
                this.tbTarget.Size = new System.Drawing.Size(161, 20);
                this.tbTarget.TabIndex = 0;
                // 
                // rtbTarget
                // 
                this.rtbTarget.AcceptsTab = true;
                this.rtbTarget.AccessibleDescription = "Target RichTextBox";
                this.rtbTarget.AccessibleName = "rtbTarget";
                this.rtbTarget.Location = new System.Drawing.Point(119, 103);
                this.rtbTarget.Name = "rtbTarget";
                this.rtbTarget.Size = new System.Drawing.Size(161, 96);
                this.rtbTarget.TabIndex = 2;
                this.rtbTarget.Text = "";
                // 
                // tbTargetMultiLine
                // 
                this.tbTargetMultiLine.AcceptsReturn = true;
                this.tbTargetMultiLine.AcceptsTab = true;
                this.tbTargetMultiLine.AccessibleDescription = "Target multi-line TextBox";
                this.tbTargetMultiLine.AccessibleName = "mtbTarget";
                this.tbTargetMultiLine.AllowDrop = true;
                this.tbTargetMultiLine.Location = new System.Drawing.Point(119, 12);
                this.tbTargetMultiLine.Multiline = true;
                this.tbTargetMultiLine.Name = "tbTargetMultiLine";
                this.tbTargetMultiLine.Size = new System.Drawing.Size(161, 73);
                this.tbTargetMultiLine.TabIndex = 1;
                this.tbTargetMultiLine.Tag = "test";
                // 
                // lblSingleLineTextBox
                // 
                this.lblSingleLineTextBox.AccessibleDescription = "Label for single line TextBox";
                this.lblSingleLineTextBox.AccessibleName = "lblSingleLineTextBox";
                this.lblSingleLineTextBox.Location = new System.Drawing.Point(12, 223);
                this.lblSingleLineTextBox.Name = "lblSingleLineTextBox";
                this.lblSingleLineTextBox.Size = new System.Drawing.Size(101, 53);
                this.lblSingleLineTextBox.TabIndex = 3;
                this.lblSingleLineTextBox.Text = "Single Line TextBox (2 character limit) (tbTarget)";
                // 
                // lblMultilineTextBox
                // 
                this.lblMultilineTextBox.AccessibleDescription = "Label for multi-line TextBox";
                this.lblMultilineTextBox.AccessibleName = "lblMultiLineTextBox";
                this.lblMultilineTextBox.Location = new System.Drawing.Point(12, 12);
                this.lblMultilineTextBox.Name = "lblMultilineTextBox";
                this.lblMultilineTextBox.Size = new System.Drawing.Size(101, 50);
                this.lblMultilineTextBox.TabIndex = 4;
                this.lblMultilineTextBox.Text = "Multi-Line TextBox (tbTargetMultiLine)";
                // 
                // lblRichTextBox
                // 
                this.lblRichTextBox.AccessibleDescription = "Label for rich text TextBox";
                this.lblRichTextBox.AccessibleName = "lblRichTextBox";
                this.lblRichTextBox.Location = new System.Drawing.Point(12, 103);
                this.lblRichTextBox.Name = "lblRichTextBox";
                this.lblRichTextBox.Size = new System.Drawing.Size(94, 38);
                this.lblRichTextBox.TabIndex = 5;
                this.lblRichTextBox.Text = "RichTextBox (rtbTarget)";
                // 
                // checkBox1
                // 
                this.checkBox1.AutoSize = true;
                this.checkBox1.Location = new System.Drawing.Point(15, 40);
                this.checkBox1.Name = "checkBox1";
                this.checkBox1.Size = new System.Drawing.Size(74, 17);
                this.checkBox1.TabIndex = 8;
                this.checkBox1.Text = "Read-only";
                this.checkBox1.UseVisualStyleBackColor = true;
                this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
                // 
                // checkBox2
                // 
                this.checkBox2.AutoSize = true;
                this.checkBox2.Location = new System.Drawing.Point(15, 132);
                this.checkBox2.Name = "checkBox2";
                this.checkBox2.Size = new System.Drawing.Size(74, 17);
                this.checkBox2.TabIndex = 9;
                this.checkBox2.Text = "Read-only";
                this.checkBox2.UseVisualStyleBackColor = true;
                this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged);
                // 
                // checkBox3
                // 
                this.checkBox3.AutoSize = true;
                this.checkBox3.Location = new System.Drawing.Point(15, 266);
                this.checkBox3.Name = "checkBox3";
                this.checkBox3.Size = new System.Drawing.Size(74, 17);
                this.checkBox3.TabIndex = 10;
                this.checkBox3.Text = "Read-only";
                this.checkBox3.UseVisualStyleBackColor = true;
                this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged);
                // 
                // Target
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(292, 312);
                this.Controls.Add(this.checkBox3);
                this.Controls.Add(this.checkBox2);
                this.Controls.Add(this.checkBox1);
                this.Controls.Add(this.lblRichTextBox);
                this.Controls.Add(this.lblMultilineTextBox);
                this.Controls.Add(this.lblSingleLineTextBox);
                this.Controls.Add(this.tbTargetMultiLine);
                this.Controls.Add(this.rtbTarget);
                this.Controls.Add(this.tbTarget);
                this.Name = "Target";
                this.Text = "Target";
                this.ResumeLayout(false);
                this.PerformLayout();
    
            }
    
            #endregion
    
            private System.Windows.Forms.TextBox tbTarget;
            private System.Windows.Forms.RichTextBox rtbTarget;
            private System.Windows.Forms.TextBox tbTargetMultiLine;
            private System.Windows.Forms.Label lblSingleLineTextBox;
            private System.Windows.Forms.Label lblMultilineTextBox;
            private System.Windows.Forms.Label lblRichTextBox;
            private System.Windows.Forms.CheckBox checkBox1;
            private System.Windows.Forms.CheckBox checkBox2;
            private System.Windows.Forms.CheckBox checkBox3;
        }
    }
    
    
    展开全文
  • 封装成了用户自定义控件文本字体、背景颜色随自定义控件的字体喝背景颜色改变而改变,使用方便。
  • 主要和大家一起学习Winform文本类控件,包含标签控件(Label),按钮控件(Button),文本框控件(TextBox)和格式文本控件(RichTextBox),感兴趣的小伙伴们可以参考一下
  • C# winfrom 富文本编辑框 下载下来即可使用。下载请解压无密码保护,直接可用,欢迎使用。谢谢
  • 分组类控件主要包括容器... Panel控件在默认情况下不显示边框,如把BorderStyle属性设置为不是none的其他值,就可以使用面板可视化地组合相关的控件。 实例:演示Panel控件的BorderStyle属性和AutoScroll属性 (1)在
  • WinForm基础控件--文本控件

    千次阅读 2017-11-01 05:04:59
    文本控件Presentation Label控件 打地鼠小游戏 MouseEnter鼠标进入控件时事件 clientSize客户端大小 Random随机数类 Point坐标点 项目下载Button按钮控件 中奖小实例 项目添加3个窗体并每个窗体放置...

    Label控件

    文本控件Presentation

    这里写图片描述


    Label控件

    这里写图片描述
    这里写图片描述


    打地鼠小游戏
    MouseEnter鼠标进入控件时事件
    clientSize客户端大小
    Random随机数类
    Point坐标点

    这里写图片描述

    项目下载


    Button按钮控件

    这里写图片描述


    这里写图片描述


    中奖小实例

    项目添加3个窗体并每个窗体放置一个按钮

    这里写图片描述


    这里写图片描述


    这里写图片描述


    这里写图片描述


    这里写图片描述


    想点击确定就关闭全部窗体

    编写一个静态类,与Form1的字段

    这里写图片描述


    主窗体1加载时 把Form1赋值给静态字段
    这里写图片描述


    在窗体3按钮中关闭Form1主窗体

    这里写图片描述


    TextBox控件

    这里写图片描述


    这里写图片描述


    这里写图片描述


    MultiLine属性可设置多行文本

    这里写图片描述


    CharacterCasing所有字符改变大小写或不改变

    这里写图片描述


    这里写图片描述


    MaxLength 最大字符长度

    这里写图片描述


    这里写图片描述


    PasswordChar定义密码输入的掩盖字符

    这里写图片描述


    这里写图片描述


    ReadOnly 控制能否编辑文本框

    这里写图片描述


    ScrollBars控制滚动条
    这里写图片描述


    这里写图片描述


    WordWrap编辑时是否自动换行

    这里写图片描述


    这里写图片描述


    Text默认文本框的内容
    这里写图片描述


    AcceptsReturn按下回车键时换行还是激活按钮

    这里写图片描述


    按下回车键可以换行

    这里写图片描述


    为False时
    这里写图片描述


    配合窗体按钮设置接受回车键的激发

    这里写图片描述


    这里写图片描述


    这里写图片描述


    TextChange事件

    这里写图片描述


    这里写图片描述


    这里写图片描述


    RichTextbox控件

    这里写图片描述


    这里写图片描述


    这里写图片描述


    这里写图片描述


    Timer控件

    这里写图片描述


    这里写图片描述


    这里写图片描述


    实例1.不停弹出提示信息

    这里写图片描述


    这里写图片描述


    实例2-跑马灯

    这里写图片描述


    这里写图片描述


    实例3-定时播放器

    这里写图片描述


    这里写图片描述


    添加一个时间显示并且激活

    这里写图片描述


    设置一秒更新一次
    这里写图片描述


    这里写图片描述


    这里写图片描述


    在项目根目录放置播放的文件(程序集4.0支持).wav音频文件格式

    这里写图片描述


    复制路径快捷技巧
    Shift+鼠标右键
    这里写图片描述


    这里写图片描述


    当时间到达时会自动播放音频
    这里写图片描述


    实例4-秒表计时器

    这里写图片描述


    设置timer属性
    这里写图片描述


    这里写图片描述


    这里写图片描述


    项目下载

    展开全文
  • 对应文章地址:https://blog.csdn.net/mazhiyuan1981/article/details/109199984
  • 在利用C#开发Winform应用程序的时候,我们有可能使用RichTextBox来实现实时显示应用程序日志的功能,日志又分为:一般消息,警告提示和错误等类别。为了更好地区分不同类型的日志,我们需要使用不同的颜色来输出对应...
  • TextEditor是本人根据自己的需求简单制作的一款c# WinForm下的文本编辑控件,因为已经能满足自己当前的需求,所以1.0版本只 完成了简单的功能: 1.字体选择 2.字体大小 3.样式:粗体、斜体、下划线 4.字体颜色 5....
  • C#WinForm Ri用chTextBox做的 文本编辑器带有左中右等功能
  • WinForm 单据打印控件

    2020-01-20 17:25:21
    该功能主要用于打印单据,支持自定义打印模板,可使用传参模式打印数据,可答应文本,表单,一维码,二维码,图片等数据模式,软件中配置好基本的模板,满足所有常见的单据打印
  • winform之GroupBox控件扩展 扩展控件:在现有的控件基础上派生出新的控件,通过添加自定义属性、方法或其他功能来扩展原有控件
  • Winform控件文本控件

    千次阅读 2015-05-10 18:44:35
    对于一个应用程序而言,控件是搭建用户界面的积木。它们具备交互式的特征。VS 2012中的控件都放在工具箱中,添加一个控件到窗体,只需在工具箱中选择好要添加的控件,并按住鼠标左键,拖动到窗体上即可。向窗体上...

           对于一个应用程序而言,控件是搭建用户界面的积木。它们具备交互式的特征。VS 2012中的控件都放在工具箱中,添加一个控件到窗体,只需在工具箱中选择好要添加的控件,并按住鼠标左键,拖动到窗体上即可。向窗体上添加控件还有另一个方法,就是通过代码来实现,即可通过窗体的Controls类的Add方法,格式为:窗体标识.Controls.Add(控件标识)。通过代码的方法添加控件比较麻烦,基本上是不会使用这种方法的。

            文本类控件包含标签控件(Label),按钮控件(Button),文本框控件(TextBox)和格式文本控件(RichTextBox)。

            Label控件

            Label控件是VS各个版本中最简单的控件,是System.Windows.Forms.Label类提供的控件。Label控件的作用通常是用来提供其他控件的描述文字。Label控件的常用属性为Text属性,可通过属性面板设置,也可以在代码中设置,在代码中设置的格式为:Label控件ID.Text=“要显示的描述”。

            创建一个窗体,在窗体中添加两个Label控件Label1和Label2,右击Label1选择属性命令,设置Text属性值为“我是在设计时设置的”。双击窗体,在代码中生成窗体添加事件,添加一段代码:

    <span style="font-size:18px;">        private void Form1_Load(object sender, EventArgs e)
            {
                label2.Text = "我是在代码中设置的";
            }</span>

           运行窗体就会显示出下面的图示:

     

     

        

     

            Button控件

            Button控件是由System.Windows.Forms.Button类提供的控件,该控件最常用的就是编写处理按钮的Click事件代码。Button控件的常用属性有Text属性,Image属性和ImageList属性。Text属性用来设置按钮的文本,Image属性和ImageList属性是设置Button控件的图像,ImageList属性是设置放置在窗体上的ImageList对象。窗体的AcceptButtons属性可设置打开窗体时的默认按钮,一般情况下,窗体的默认按钮有略粗的边框。

            在窗体中添加三个Button控件,分别设置name属性为btnDefault,btnNoDefault和btnImage,将btnDefault的Text属性设置为“默认”,将btnNoDefault的Text属性设置为“不默认”,将btnImage的Text属性设置为空,并将其Image属性设置为一个图像。并设置窗体默认按钮为btnDefault。

           双击btnDefault,代码中出现btnDefault的Click事件,并在事件内加入一个显示指定消息的消息框。为btnNodefault添加Click事件,它们的代码为:

            <span style="font-size:18px;">private void btnDefault_Click(object sender, EventArgs e)
            {
                MessageBox.Show("我是默认按钮");
            }
    
            private void btnNodefault_Click(object sender, EventArgs e)
            {
                MessageBox.Show("我不是默认按钮");
            }</span>

           运行窗体后并按下Enter键显示的结果图示:

     

            TextBox控件和RichTextBox控件

            TextBox控件有System.Windows.Forms.TextBox类提供的控件,提供了基本的文本输入和编辑功能,TextBox控件的常用属性为;

     

            TextBox控件的常用事件为TextChanged事件,它的含义为当Text属性的文本值发生改变时响应的事件。

            在窗体中添加两个TextBox控件,分别设置Name属性为tbsingle和tbMall,设置tbMall的Multiline为ture,设置tbmall的属性ScrollBars为both,设置属性Lines为“我是中国人”,设置tbSingle的PasswordChar为“*”。双击tbSingle,代码中出现TextChanged事件,并在事件内加入一个显示指定消息的消息框,提示用户文本内容改变为,代码为:

               <span style="font-size:18px;">private void tbSingle_TextChanged(object sender, EventArgs e)
            {
                MessageBox.Show("我的文本内容改变了");
            }</span>

          运行窗体显示的结果为:

     

            RichTextBox控件是TextBox控件的升级版,可以更加灵活的应用这控件,可以设置字体的颜色,形式和添加图片等内容,但是一般情况使用的还是TextBox多。

     

     

     

     

          

     

     

     

      

     

          

     

     

     


     

     

     

           

       

          

     

    展开全文
  • Winform Html编辑器控件 HtmlEditor 压缩包内为源代码
  • 版本.net Framwork 4.0 C#文本编辑控件,可实现对文本加粗下划线倾斜,居中左对齐右对齐,改变文字颜色,改变文字大小 使用控件的rtf字段对应编辑框内的内容(包括图片,字体格式等) dll文件,方便使用在你的项目中
  • WinForm中常用控件

    千次阅读 2020-08-21 17:47:02
    公共控件 一、Button:按钮 按钮是一种非常常见的控件,任何需要在界面点击然后进行下一步操作的行为都可以使用按钮来完成。 使用:QQ的登录按钮 常用属性: Enable:设置按钮是否可以点击,常用于步骤...
  • 在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了。TextBox控件本身是提供了一个自动提示功能,只要用上这三个属性: AutoCompleteCustomSource:...
  • 设置TextBox控件的默认文本即在加载TextBox控件时为其Text文本赋值。点击文本消失,离开或者失去焦点显示默认文本可以通过Enter和Leave事件或Mouse的事件来实现。具体操作和代码如下。 一、操作 鼠标放到TextBox...
  • 设置TextBox控件的默认文本即在加载TextBox控件时为其Text文本赋值。点击文本消失,离开或者失去焦点显示默认文本可以通过Enter和Leave事件或Mouse的事件来实现。具体代码如下。 private void txtPassword_Enter...
  • 第一次上传资源,发现居然不能发图。程序(有源码)是自己写的关于Winform 的时间控件,并不是由两个DateTimePicker组成的,而是一个文本框加一个年,...当然还有支持水印的WaterTextBox.cs文本控件。欢迎大家批评指正。
  • 本资源是通过winform客户端加载本地文本编辑器源码实现了富文本编辑功能;.net framework 4.0 C/S 亲测可用,属于曲线救国类型的源码,虽是曲线救国但是曲线不是很曲,资源分享,欢迎回复。
  • 这样就把111,"222",这2个值传送给了Form2 d 但是这样的传值是单向的 第四种方法:通过窗体的公有属性值(特点:实现简单) 举例“在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值 public ...
  • Winform中有时候需要html编辑器,示例如图。包含示例,可以直接引用。资源下载此资源下载价格为3D币,请先登录资源文件列表Code/Backup/HTMLTextBox/HTMLTextBox.bmp,822Code/Backup/HTMLTextBox/HTMLTextBox.cs,...
  • 遍历所有控件,需要使用递归调用,将所有的控件都找出来,我这里使用的是递归调用,寻找指定的控件,设置相关属性,例子如下: //循环遍历设置控件为只读 void GetControlSetReadOnly(Control^ mControl, bool ...
  • WinForm TextBox默认可以输入任何文本,为方便开发我继承开发了一个只能输入数字和小数 并且可以控制小数位数的NumericTextBox 控件DecimalPlaces属性控制小数位数 默认4位 设置为-1表示不控制精度
  • 如何利用backgroundWorker1_DoWork事件实现winfrom界面中文本框的实时显示 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { System.Timers.Timer t = new System.Timers.Timer(100);...
  • 继承系统的TextBox,支持文字垂直居中;自动折行(即WordWrap = True)也支持垂直居中。
  • Application.ProcessMessages的用法意义 在循环中加Application.ProcessMessages是可以防止其他控件没响应,举个例子容易明白:假如你的窗体上有两个按 ... Windows--查看使用某端口的进程 场景: 有时候我们希望查找...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,176
精华内容 4,470
关键字:

winform显示文本的控件