zoukankan      html  css  js  c++  java
  • C#用户控件开发

     

    控件名称:

    chkSelect

    label1

    BeginDatePicker

    EndDatePicker

    控件代码如下(直接从UserControl继承) 

      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Drawing;
      5 using System.Data;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Windows.Forms;
      9 
     10 namespace CustomControlSample
     11 {
     12     [ToolboxBitmap(typeof(System.Windows.Forms.DateTimePicker))]
     13     public partial class DateTimeBeginEnd : UserControl
     14     {
     15         public DateTimeBeginEnd()
     16         {
     17             InitializeComponent();
     18             this.FCheckboxVisible = true;
     19             this.BeginDatePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
     20             this.EndDatePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
     21             this.BeginDatePicker.CustomFormat = "yyyy-MM-dd HH:mm:ss";
     22             this.EndDatePicker.CustomFormat = "yyyy-MM-dd HH:mm:ss";
     23             this.BeginDatePicker.Left=nBeginDateLeft;
     24         }
     25 
     26         private int nBeginDateLeft=25;
     27 
     28         private DateTime FBeginDate;
     29         private DateTime FEndDate;
     30         private Boolean FCheckDateTime;
     31         private Boolean FCheckboxVisible;
     32         private Boolean FCheckboxChecked;
     33         private DateTimePickerFormat FDateTimeFormat;
     34         private string FDateTimeCustomFormat;
     35 
     36         public delegate void CustomFormatChangeEventHandle(object sender, EventArgs arg);
     37         public event CustomFormatChangeEventHandle FormatChanged;
     38 
     39         private void OnFormatChanged(EventArgs e)
     40         {
     41             if (this.FormatChanged!=null)
     42             {
     43                 this.FormatChanged(this,e);
     44             }
     45         }
     46 
     47         public DateTime BeginDate 
     48         {
     49             get
     50             {
     51                 this.FBeginDate = this.BeginDatePicker.Value;
     52                 return this.FBeginDate;
     53             }
     54             set
     55             {
     56                 this.FBeginDate = value;
     57                 this.BeginDatePicker.Value = this.FBeginDate;
     58             }
     59         }
     60 
     61         public DateTime EndDate
     62         {
     63             get
     64             {
     65                 this.FEndDate = this.EndDatePicker.Value;
     66                 return this.FEndDate;
     67             }
     68             set
     69             {
     70                 this.FEndDate = value;
     71                 this.EndDatePicker.Value =this.FEndDate;
     72             }
     73         }
     74 
     75         public Boolean CheckDateTime
     76         {
     77             get
     78             {
     79                 this.FCheckDateTime = this.chkSelect.Checked;
     80                 return this.FCheckDateTime;
     81             }
     82             set
     83             {
     84                 this.FCheckDateTime = value;
     85                 this.chkSelect.Checked = this.FCheckDateTime;
     86             }
     87         }
     88 
     89         public Boolean CheckboxVisible
     90         {
     91             get
     92             {
     93                 this.FCheckboxVisible = this.chkSelect.Visible;
     94                 return this.FCheckboxVisible;
     95             }
     96             set
     97             {
     98                 this.FCheckboxVisible = value;
     99                 this.chkSelect.Visible = this.FCheckboxVisible;
    100             }
    101         }
    102 
    103         public DateTimePickerFormat DateTimeFormat
    104         {
    105             get
    106             {
    107                 this.FDateTimeFormat = this.BeginDatePicker.Format;
    108                 return this.FDateTimeFormat;
    109             }
    110             set
    111             {
    112                 if (FDateTimeFormat != value)
    113                 {
    114                     this.FDateTimeFormat = value;
    115                     this.BeginDatePicker.Format = this.FDateTimeFormat;
    116                     this.EndDatePicker.Format = this.FDateTimeFormat;
    117                     OnFontChanged(null);
    118                 }
    119             }
    120         }
    121 
    122         public string DateTimeCustomFormat
    123         {
    124             get
    125             {
    126                 this.FDateTimeCustomFormat = this.BeginDatePicker.CustomFormat;
    127                 return this.FDateTimeCustomFormat;
    128             }
    129             set
    130             {
    131                 this.FDateTimeCustomFormat = value;
    132                 this.BeginDatePicker.CustomFormat = this.FDateTimeCustomFormat;
    133                 this.EndDatePicker.CustomFormat = this.FDateTimeCustomFormat;
    134             }
    135         }
    136 
    137         public Boolean CheckboxChecked
    138         {
    139             get
    140             {
    141                 this.FCheckboxChecked = this.chkSelect.Checked;
    142                 return this.FCheckboxChecked;
    143             }
    144             set
    145             {
    146                 this.FCheckboxChecked = value;
    147                 this.chkSelect.Checked = this.FCheckboxChecked;
    148             }
    149         }
    150 
    151         public event EventHandler BeginDatePickerChange;
    152         public event EventHandler EndDatePickerChange;
    153         public event EventHandler CheckBoxClick;
    154 
    155         protected void OnBeginDateChange(EventArgs arg)
    156         {
    157             if (BeginDatePickerChange != null)
    158                 BeginDatePickerChange(this, arg);
    159         }
    160 
    161         protected void OnEndDateChange(EventArgs arg)
    162         {
    163             if (EndDatePickerChange != null)
    164                 EndDatePickerChange(this, arg);
    165         }
    166 
    167         protected void OnCheckBoxChange(EventArgs arg)
    168         {
    169             if (CheckBoxClick != null)
    170                 CheckBoxClick(this,arg);
    171         }
    172 
    173         private void EndDatePicker_ValueChanged(object sender, EventArgs e)
    174         {
    175             OnEndDateChange(e);
    176         }
    177 
    178         private void BeginDatePicker_ValueChanged(object sender, EventArgs e)
    179         {
    180             OnBeginDateChange(e);
    181         }
    182 
    183         private void chkSelect_Click(object sender, EventArgs e)
    184         {
    185             OnCheckBoxChange(e);
    186         }
    187 
    188         private void EndDatePicker_FormatChanged(object sender, EventArgs e)
    189         {
    190             OnFormatChanged(e);
    191             TextChange();
    192         }
    193 
    194         private void BeginDatePicker_FormatChanged(object sender, EventArgs e)
    195         {
    196             OnFormatChanged(e);
    197             TextChange();
    198         }
    199 
    200         private void EndDatePicker_FontChanged(object sender, EventArgs e)
    201         {
    202             OnFormatChanged(e);
    203             TextChange();
    204             //if (System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime)
    205             //{
    206             //    //returnFlag = true;  DesignMode设计时状态
    207             //}
    208             //else if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToUpper().Equals("DEVENV"))
    209             //{
    210             //    //returnFlag = true;
    211             //}  
    212         }
    213 
    214         private void TextChange()
    215         {
    216             this.BeginDatePicker.Width = TextRenderer.MeasureText(this.BeginDatePicker.Value.ToString(this.BeginDatePicker.CustomFormat), this.BeginDatePicker.Font).Width+37;
    217             this.EndDatePicker.Width = TextRenderer.MeasureText(this.EndDatePicker.Value.ToString(this.EndDatePicker.CustomFormat), this.EndDatePicker.Font).Width + 37;
    218             this.label1.Left =this.BeginDatePicker.Left+this.BeginDatePicker.Width+2;
    219             this.EndDatePicker.Left = this.label1.Left + this.label1.Width + 2;
    220         }
    221 
    222         private void BeginDatePicker_FontChanged(object sender, EventArgs e)
    223         {
    224             OnFormatChanged(e);
    225             TextChange();
    226         }
    227 
    228         private void DateTimeBeginEnd_Resize(object sender, EventArgs e)
    229         {
    230             //int nLabelLeft = 0;
    231             //int nEndDateLeft = 0;
    232             //nLabelLeft = this.BeginDatePicker.Left + this.BeginDatePicker.Width + 2;
    233             //this.label1.Left = nLabelLeft;
    234             //nEndDateLeft = this.label1.Left + this.label1.Width + 2;
    235             //this.EndDatePicker.Left = nEndDateLeft;
    236             this.BeginDatePicker.Width=(this.Width-25-label1.Width-6)/2;
    237             this.EndDatePicker.Width=this.BeginDatePicker.Width;
    238             this.label1.Left=this.BeginDatePicker.Left + this.BeginDatePicker.Width + 2;
    239             this.EndDatePicker.Left =this.label1.Left + this.label1.Width + 2;
    240         }
    241     }
    242 }
  • 相关阅读:
    DELPHI中应用GoogleMap[转]
    给DBGrid添加鼠标滚动事件
    枚举和卸载消息钩子[转]
    区域性名称和标识符
    VCL 中的 Windows API 函数: AlphaBlend
    高效读书,实用阅读指南
    defaultservlethandler不生效原因,springmvc静态资源拦截方案比较
    indexOf原理,Java,javascript,python实现
    可见性是什么?(通俗易懂)
    我们一起学程序五子棋
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2838876.html
Copyright © 2011-2022 走看看