C#控件介绍及用法(详细版) 联系客服

发布时间 : 星期五 文章C#控件介绍及用法(详细版)更新完毕开始阅读aedeb87b27284b73f24250fb

进度条ProgressBar: 掩码文本框MarkedTextBox:

进度条是一个使用起来十分简单的控件主要改变其Maximun、Minimun、Value属性来简单的调整外观视图。 掩码文本框则是通过掩码来确定用户输入特定格式的文字。 下面例子中同时用到两种控件来实现一个比较直观的定时器。 【例】定时器

? ? ? 拖拽出一个掩码文本框、一个按钮和一个进度条修改名字为maskText、btnSet、progressBar 设置maskText.Mask属性

? ? ? ? ? ? ? ? ? 选择时间格式

确定——这时掩码文本框的外观已经改变:

设置progressBar.Value属性为100,可看到进度条满格设置progressBar.Enabled属性为False 在拖拽一个工具箱->组件-> 改名timer

设置Form的AcceptButton=btnSet 添加全局变量

DateTime dt = new DateTime(), st = new DateTime(); 双击btnSet以编辑Click事件 private void btnSet_Click(object sender, EventArgs e) { switch (btnSet.Text) { case \: try {

dt = (DateTime)maskText.ValidateText(); st = DateTime.Now; timer.Enabled = true; maskText.ReadOnly = true; btnSet.Text = \; } catch {

progressBar.Value = 100; timer.Enabled = false; dt = new DateTime(); st = new DateTime();

maskText.ReadOnly = false; this.Text = \; }

break; case \:

timer.Enabled = false;

maskText.ReadOnly = false; btnSet.Text = \; break; } }

? 双击timer,编辑timer.Tick事件 private void timer_Tick(object sender, EventArgs e) { if ((dt - DateTime.Now).TotalMilliseconds >= 200) { progressBar.Value = (int)(((dt - DateTime.Now).TotalMilliseconds / (dt - st).TotalMilliseconds) * 100); this.Text = \ + Math.Round((dt - DateTime.Now).TotalSeconds,2); } else { timer.Enabled = false; MessageBox.Show(\); btnSet.Text = \; dt = new DateTime(); st = new DateTime(); progressBar.Value = 100; this.Text = \; } } ? 运行看看效果。

P.S. 这个定时器可能会提前200ms内报时,前面有一句

if ((dt - DateTime.Now).TotalMilliseconds >= 200)

的判断,提前了200ms以提高稳定性,可以减小后面的值提高定时器精度,但不建议设为0

月历MonthCalendar:

这个控件提供了一个简单的月历

可以通过SelectRange属性来获得选择的日期范围 它可选择多个连续的日期

【例】显示2010年第一季度的节气

? ? ?

设计界面如图

命名月历控件为calendar,静态文本控件命名为info 设置info.Visible=false

? ? ? 设置calendar属性如图添加全程变量 修改Form1构造函数

Dictionary dict = new Dictionary(); public Form1() { InitializeComponent(); dict.Add(new DateTime(2010, 1, 5), \小寒\); dict.Add(new DateTime(2010, 1, 20), \大寒\); dict.Add(new DateTime(2010, 2, 4), \立春\); dict.Add(new DateTime(2010, 2, 19), \雨水\); dict.Add(new DateTime(2010, 3, 5), \惊蛰\); dict.Add(new DateTime(2010, 3, 21), \春风\); } ? 双击calendar编辑DateChanged事件 private void calendar_DateChanged(object sender, DateRangeEventArgs e) { string str = string.Empty; info.Visible = dict.TryGetValue(calendar.SelectionStart, out str); info.Text = str; } ? ? 运行 更换不同的日期看看效果,选构造函数中初始化字典变量的日期会在info显示节气

日期选择下拉菜单DateTimePicker:

月历是很方便的日期选择控件,不需要类型转换,也比掩码文本框更人性化,但它占程序的面积过大,这种情况下可使用日期选择下拉菜单,节省面积,需要的时候展开选择日期。他的使用方法与月历控件差不多。这个控件只可以选择一个日期。 【例】显示2010年第一季度的节气

编辑界面如图 命名日期选择下拉菜单为picker,命名静态文本控件info ? 添加全程变量 Dictionary dict = new Dictionary(); ? 修改Form1构造函数 public Form1() { InitializeComponent(); dict.Add(new DateTime(2010, 1, 5), \小寒\); dict.Add(new DateTime(2010, 1, 20), \大寒\); dict.Add(new DateTime(2010, 2, 4), \立春\); dict.Add(new DateTime(2010, 2, 19), \雨水\); dict.Add(new DateTime(2010, 3, 5), \惊蛰\); dict.Add(new DateTime(2010, 3, 21), \春风\); } ? 双击picker编辑DateChanged事件 private void picker_ValueChanged(object sender, EventArgs e) { string str = string.Empty; info.Visible = dict.TryGetValue(picker.Value.Date, out str); info.Text = str; } ? 运行