GroupBox、TextBox、CheckBox、ToolStrip、RichTextBox、Timer控件
GroupBox:划分窗体区域,内部可以拖放组件
TextBox:可编辑文本框,也可设置为只读
属性:ReadOnly(只读)、PasswordChar(密码显示的符号,如*)、Multiline(多行,可改变高度)
事件:TextChanged(文本改变触发)
CheckBox:复选框控件
属性:CheckState(是否被选中)
事件:CheckStateChange(选中状态改变触发)
ToolStrip:工具栏
属性:DisplayStyle(如只显示图片)
RichTextBox:有格式文本框,如字体颜色、加粗等
属性:ScrollBar(滚动条)、Font、ForeColor(字体属性)、BulletIndent(项目符号缩进)
事件:LinkClicked(超链接文本被单击触发),在事件中添加代码如下
System.Diagnostics.Process.Start(e.LinkText); //浏览器打开链接
注意:BulletIndent(项目符号缩进),必须在界面代码里打开项目符号,否则缩进值无效。
this.richTextBox1.SelectionBullet = true; //手动输入 this.richTextBox1.BulletIndent = 20; //设置缩进值后,自动生成
Timer:计时器,定期引发事件
属性:Enabled(是否运行,类似Start)、Interval(触发Tick事件的时间间隔,毫秒)、Start、Stop
事件:Tick(超过指定时间,且处于启用状态,才不断触发)
举例:倒计时
timer1用于刷新显示系统时间,属性设置:Enable True,Interval 1000
timer2用于刷新剩余时间,属性默认
using System; using System.Windows.Forms; namespace Demo2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); //界面启动,控件默认值为系统时间 numericUpDown1.Value = DateTime.Now.Hour; numericUpDown2.Value = DateTime.Now.Minute; numericUpDown3.Value = DateTime.Now.Second; } private void button1_Click(object sender, EventArgs e) { if (button1.Text == "倒计时") { button1.Text = "停止"; timer2.Start();//启动timer2 }else if (button1.Text == "停止") { button1.Text = "倒计时"; timer2.Stop(); label7.Text = "倒计时已取消"; } } private void timer2_Tick(object sender, EventArgs e) { //剩余时间,秒 int timeRemaining=(int)(numericUpDown1.Value*3600+ numericUpDown2.Value*60+ numericUpDown3.Value)-(DateTime.Now.Hour * 3600 + DateTime.Now.Minute * 60 + DateTime.Now.Second); if (timeRemaining> 0) { label7.Text="倒计时开始,剩余" + timeRemaining+ "秒"; } else { label7.Text="倒计时已到"; } } private void timer1_Tick(object sender, EventArgs e) { label6.Text = DateTime.Now.ToLongTimeString();//每秒刷新一次内容 } } }
Timer案例2:随机数
private void button1_Click(object sender, EventArgs e) { timer1.Start();//启动时钟,1s(Interval属性) } private void button2_Click(object sender, EventArgs e) { timer1.Stop(); } private void timer1_Tick(object sender, EventArgs e) { Random r = new Random(); label1.Text = r.Next(0, 20).ToString("00");//两位格式 label2.Text = r.Next(0, 20).ToString("00");//两位格式 label3.Text = r.Next(0, 20).ToString("00");//两位格式 label4.Text = r.Next(0, 20).ToString("00");//两位格式 }