首页 > 其他分享 >winform控件开发一之复合控件开发(1)模拟量显示1

winform控件开发一之复合控件开发(1)模拟量显示1

时间:2023-06-21 14:12:22浏览次数:35  
标签:控件 set string get 一之 value public winform

winform控件开发包括三种类型

  1. 复合控件,又称为组合控件
  2. 扩展控件
  3. 自定义控件

复合控件:

复合控件,又称为组合控件,一般是将现有控件功能进行组合形成一个新的控件。

举例:

设计一个工控中常用的模拟量控件,可以显示变量的名称,变量值和单位,如下图所示

 在这个复合空间中,左边使用一个lable显示变量名,中间使用一个textbox显示变量值,右边也是一个lable显示单位,

为了更好的布局这三个控件,这里使用了tableLayout控件,将其设置为1行3列,分别将两个lable和一个textbox添加到tableLayout设置的三个空格中

 

复合控件创建步骤如下:

添加“新建项”》选择“用户控件”》输入名称“AnalogDisplay”点击确定

这里注意,复合控件使用的是用户控件模板创建的,其继承UserControl类

 不同于复合控件,扩展控件继承需要扩展的控件,而自定义控件继承Control类,具体方式参考后续笔记。

 

具体实现:

或者:

 

 代码如下:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace 各种C_sharp功能测试
{
    
    public partial class AnalogDisplay : UserControl
    {
        public AnalogDisplay()
        {
            InitializeComponent();
            txtVarValue.KeyDown += TxtVarValue_KeyDown;
        }


        //变量名
        public string VarName
        {
            get { return lblVarName.Text; }
            set { lblVarName.Text = value; }
        }

        //变量值
        public string VarValue
        {
            get { return txtVarValue.Text; }
            set { txtVarValue.Text = value; }
        }

        //单位        
        public string VarUnit
        {
            get { return lblVarUnit.Text; }
            set { lblVarUnit.Text = value; }
        }
        //设置显示字体
        public Font TextFont
        {
            get { return lblVarName.Font; }
            set
            {
                lblVarName.Font = value;
                txtVarValue.Font = value;
                lblVarUnit.Font = value;
            }
        }
        //控制显示还是输入
        public bool InputEnable
        {
            get { return txtVarValue.Enabled; }
            set { txtVarValue.Enabled = value; }
        }
        //添加一个事件,当输入变量值并按下回车键时触发该事件
        public event EventHandler<AnalogDisplayArg> ValueChanged;

        private void TxtVarValue_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!string.IsNullOrEmpty(VarValue))
                {
                    ValueChanged?.Invoke(this, new AnalogDisplayArg(VarValue));
                }
                
            }
        }
    }

    public class AnalogDisplayArg : EventArgs
    {
        public string Value { get; set; }
        public AnalogDisplayArg(string value)
        {
            Value = value;
        }
    }
}

 

标签:控件,set,string,get,一之,value,public,winform
From: https://www.cnblogs.com/hanzq/p/17342202.html

相关文章

  • ui设计师界面combobox控件添加鼠标点击信号
    一、概述combobox下拉框控件下拉后会显示预设好的选择内容,可是想要实现显示内容动态可变,点击的时候实时刷新到最新内容,就需要点击信号,但是qt本身没有实现这个点击信号。要实现这个功能本质方法是需要重写combobox的鼠标点击事件,这里介绍如何为ui设计师界面的combobox控件添加......
  • Qt编写控件组态属性设计器源码属性设计器产品不包括里面控件的源码
    Qt编写控件组态属性设计器源码属性设计器产品不包括里面控件的源码1.自动加载插件文件中的所有控件生成列表,默认自带的控件超过120个。2.拖曳到画布自动生成对应的控件,所见即所得。3.右侧中文属性栏,改变对应的属性立即应用到对应选中控件,直观简洁,非常适合小白使用。4.独创属性......
  • 菜单的程序控件出现和消失
    @OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);ButtonmenuButton=(Button)findViewById(R.id.menuButton);menuButton.setOnClickListener(newView.OnClickListener(){......
  • DevExpress WPF功能区控件,更轻松创建商业应用工具栏!(下)
    在上文中(点击这里回顾>>),我们主要介绍了DevExpressWPF的Ribbon、Toolbar和Menus组件支持MVVM、功能区命令栏和视图等,本文将继续介绍这些组件的自定义功能等。DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建......
  • winform TextBox输入字符串字体间隙问题
    TextBox控件,问题如下图(textBox2MName.Text):  1、以为字符集问题转utf-8.2、以为中级有空格。MName.Replace("","")以上都是不。最后大佬提醒解决了输入法问题 使用半角全角间隙大 ......
  • (五)表单、表单控件
    一、表单 二、表单控件 ......
  • VCL界面控件DevExpress VCL v23.1.3全新首发 - 支持Windows 11新主题
    DevExpressVCL Controls是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。DevExpressVCLv23.1官方正式版下载......
  • OPCDA注册后 winform运行却报错
    此错误原因为未注册dll但是我已经注册了之所以会出现这个问题是因为平台不兼容将目标平台改成x86即可 ......
  • 【.NET深呼吸】用代码写WPF控件模板
    这一次咱们来探究一下怎么用纯代码写WPF模板。模板有个共同基类 FrameworkTemplate,数据模板、控件模板等是从此类派生的,因此,该类已定义了一些通用成员。用代码构建模板,重要的成员是 VisualTree属性,它的类型是 FrameworkElementFactory。可见,模板不是直接创建可视化对象,而是......
  • MFC练习2:使用Picture Control控件显示图片
    该方式优点是可以显示JPG等其它格式的图片。一、实验步骤1、使用MFC应用程序向导添加基于对话框的项目;2、在资源视图中拖控件设计UI界面,包含PictureControl和Button共2个控件;3、修改PictureControl控件的Type为Bitmap;4、双击Button按钮编写如下代码voidCpicTestDlg::......