zoukankan      html  css  js  c++  java
  • Winform之自定义控件

    Winform控件分为用户控件和自定义控件,用户控件比较简单,本文讨论的是自定义控件。

    MS控件,无论是Winform控件还是Webform控件,无论是用户控件还是自定义控件,都有着相同的设计思想。

    1)对于自定义控件来说:

    Winform控件的UI显示是靠OnPrint方法,Webform控件的UI显示是靠RenderXXXX方法。

    2)对于自定义控件和用户控件来说:

    Winfrom控件和Webform控件的属性在UI设计中起到了至关重要的作用。在设计视图中都可以设置属性来达到设置UI的效果。记得Winfrom的属性set要调用Invalidate();方法来完成重绘。

    3)对于设计UI来说:

    Winform是依赖于GDI+绘制,Webform则依赖对html的熟悉,通过render将生成的html代码返回到客户端。

    以下是Winfrom自定义控件的代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WinformControl
    {
        
    public partial class LandpyControl : Control
        {
            
    public LandpyControl()
            {
                InitializeComponent();
            }

            
    private Color _textColor;

            
    public Color TextColor
            {
                
    get { return _textColor; }
                
    set
                {
                    _textColor 
    = value;
                    Invalidate();
                }
            }

            
    protected override void OnPaint(PaintEventArgs pe)
            {
                
    base.OnPaint(pe);
                Font enFont 
    = new Font("Times New Roman"12);
                Rectangle rect 
    = pe.ClipRectangle;
                pe.Graphics.DrawString(Text, enFont, 
    new SolidBrush(_textColor), 00);
            }

            
    protected override void OnClick(EventArgs e)
            {
                
    base.OnClick(e);
                _textColor 
    = Color.Red;
                Invalidate();
            }

            
    protected override void OnMouseLeave(EventArgs e)
            {
                
    base.OnMouseLeave(e);
                _textColor 
    = Color.Black;
                Invalidate();
            }
        }
    }

    通过TextColor可以设置显示文字的颜色,并且可定义控件的事件。

    简单的Winfrom自定义控件就完成了。

    敬告

    作者:pangxiaoliang
    出处:http://www.cnblogs.com/pangxiaoliang
    本文版权归pangxiaoliang和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
  • 相关阅读:
    econtrol窗体设计器
    脚本引擎注册将要使用的类,属性,方法,函数
    FastReport开发手册
    控制钱箱,客显,打印
    Laravel渴求式加载(比较容易理解理解load与with关系)
    50分钟学会Laravel 50个小技巧(基于laravel5.2,仅供参考)
    日期选择器date、week、time、datetime、datetimelocal类型
    input type=date时,时间数据回填,报错The specified value "2019040418" does not conform to the required format...
    Laravel技巧:使用load、with预加载 区别
    arcengine,C#实现分页打印预览
  • 原文地址:https://www.cnblogs.com/pangxiaoliang/p/1512740.html
Copyright © 2011-2022 走看看