发布时间 : 星期五 文章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
日期选择下拉菜单DateTimePicker:
月历是很方便的日期选择控件,不需要类型转换,也比掩码文本框更人性化,但它占程序的面积过大,这种情况下可使用日期选择下拉菜单,节省面积,需要的时候展开选择日期。他的使用方法与月历控件差不多。这个控件只可以选择一个日期。 【例】显示2010年第一季度的节气
编辑界面如图 命名日期选择下拉菜单为picker,命名静态文本控件info ? 添加全程变量 Dictionary