• C#带按钮的文本框TextBoxContainButton


    引用自:https://www.cnblogs.com/yepoint/p/7238667.html

    以作学习,等我写好了我的控件也出个教程

    经常需要用到各种组合控件,每次组合太麻烦,通过打包成自定义控件,方便调用。

    带按钮的文本框,如下图:

    clip_image001

    文本框内可以输入文本,响应文本框内容变化事件,按钮可以设置点击事件,图标

    通过3个组合控件实现。

    1 新建自定义控件,添加两个文本框,1个按钮,1个鼠标提示控件(ToolTip)。

    一个文本框作为背景,另一个文本框作为输入框,一个按钮点击用,只需通过设置控件属性,编辑成如下效果

    clip_image002

    2 添加常用属性

    复制代码
    [Category("自定义"), Description("按钮图片")]
    
    public Image ButtonImage
    
    {
    
    set
    
    {
    
    button.Image = value;
    
    }
    
    get
    
    {
    
    return button.Image;
    
    }
    
    }
    
    [Category("自定义"), Description("文本框鼠标悬停提示文本")]
    
    public string TextBoxToolTipText
    
    {
    
    set
    
    {
    
    toolTip1.SetToolTip(this.textBoxFront, value);
    
    }
    
    get
    
    {
    
    return toolTip1.GetToolTip(this.textBoxFront);
    
    }
    
    }
    
    [Category("自定义"), Description("按钮鼠标悬停提示文本")]
    
    public string ButtonToolTipText
    
    {
    
    set
    
    {
    
    toolTip1.SetToolTip(this.button, value);
    
    }
    
    get
    
    {
    
    return toolTip1.GetToolTip(this.button);
    
    }
    
    }
    
    [Category("自定义"), Description("文本框内文本")]
    
    public string TextBoxText
    
    {
    
    set
    
    {
    
    textBoxFront.Text = value;
    
    }
    
    get
    
    {
    
    return textBoxFront.Text;
    
    }
    
    }
    
    private bool textBoxReadOnly = false;
    
    [Category("自定义"), Description("文本框只读")]
    
    public bool TextBoxReadOnly
    
    {
    
    set
    
    {
    
    textBoxReadOnly = value;
    
    textBoxFront.ReadOnly = textBoxReadOnly;
    
    textBoxFront.ReadOnly = textBoxReadOnly;
    
    }
    
    get
    
    {
    
    return textBoxReadOnly;
    
    }
    
    }
    
    [Category("自定义"), Description("文本框背景色")]
    
    public Color TextBoxBackColor
    
    {
    
    set
    
    {
    
    textBoxBack.BackColor = value;
    
    textBoxFront.BackColor = value;
    
    }
    
    get
    
    {
    
    return textBoxBack.BackColor;
    
    }
    
    }
    复制代码

    3 添加按钮点击事件(其他事件添加类似)

    复制代码
    public delegate void ButtonClickEventHandler(Object sender, EventArgs e);
    
    public event ButtonClickEventHandler ButtonClick; //声明事件
    
    protected virtual void OnButtonClick(EventArgs e)
    
    {
    
    if (ButtonClick != null)
    
    { // 如果有对象注册
    
    ButtonClick(this, e); // 调用所有注册对象的方法
    
    }
    
    }
    
    private void button_Click(object sender, EventArgs e)
    
    {
    
    OnButtonClick(e); // 调用 OnButtonClick方法
    
    }
    复制代码

    4 属性的使用:

    clip_image003

    5 事件的使用

    clip_image004

     
  • 相关阅读:
    PostgreSQL数据库中的常见错误
    postgresql相关命令
    Linux系统查看公网IP地址
    TCP/IP TIME_WAIT状态原理
    TCP连接状态详解及TIME_WAIT过多的解决方法
    让你提升命令行效率的 Bash 快捷键 [完整版]
    linux 如何显示一个文件的某几行(中间几行)
    linux中内核的一个不错的参数somaxconn
    Linux crontab 实现每秒执行
    Linux tar This does not look like a tar archive
  • 原文地址:https://www.cnblogs.com/Jayson-yang/p/10177257.html
Copyright © 2020-2023  润新知