zoukankan      html  css  js  c++  java
  • 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

     
  • 相关阅读:
    STM32-M0中断优先级介绍
    source insight之quicker.em宏的使用
    LORA---关于LORA的30个常见问题解答
    【原创】Mac上编译Hadoop1.0.3出现的一些问题
    Mac中下载JDK手动更新出现“只支持10.7.3以上的系统版本”问题解决方案
    【Java基础】Java内部类
    【Java基础】Java类及成员和修饰符的关系
    【Java基础】Java接口的总结
    【Java基础】抽象类和抽象方法的总结
    【Java基础】Java中的多态
  • 原文地址:https://www.cnblogs.com/Jayson-yang/p/10177257.html
Copyright © 2011-2022 走看看