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

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

列表框ListBox:

列表框可以显示一列信息,可以选择。 【例】计算平均数

? ? ? 编辑界面如图

命名文本框text、按钮btnAdd、btnClear、btnCalc、列表框list 双击btnAdd编辑代码

private void btnAdd_Click(object sender, EventArgs e) { if (text.Text != string.Empty) { try { list.Items.Add(double.Parse(text.Text)); } catch (FormatException) { } text.Text = string.Empty; } } ? 双击btnCalc编辑代码 private void btnCalc_Click(object sender, EventArgs e){ if (list.Items.Count != 0) { double sum = 0, count = 0; foreach (object o in list.Items) { sum += ((double)o); count++; } text.Text = (sum / count).ToString(); } else text.Text = string.Empty; } ? 双击btnClear编辑代码 private void btnClear_Click(object sender, EventArgs e) { list.Items.Clear(); } ? 运行

复选列表框CheckedListBox:

复选列表框与列表框相比只是在每个列表项前加了一个复选框,可以用于一些比较情况复杂的场合。 【例】多个定时器

? ? ? ? ? ? 编辑界面如图

并且添加一个和定时器

命名进度条progress、按钮btnAdd和btnDel、掩码文本框mask、复选列表框chklist、定时器timer 设置timer.Interval=200 设置timer.Enable=True 建立新的结构 public struct TimerData{ public DateTime StartTime; public DateTime StopTime; public TimerData(DateTime startTime, DateTime stopTime) { this.StartTime = startTime; this.StopTime = stopTime; } public override string ToString() { double s = Math.Round((StopTime - DateTime.Now).TotalSeconds, 2); string str=\ + StopTime.TimeOfDay; if(s>=60)return str+\+(StopTime - DateTime.Now); else return str+\+s; } } ? 双击btnAdd编辑Click事件 private void btnAdd_Click(object sender, EventArgs e){ try { chklist.Items.Add(new TimerData(DateTime.Now, (DateTime)mask.ValidateText()), true); mask.ResetText(); } catch { } } ? 双击btnDel编辑Click事件 private void btnDel_Click(object sender, EventArgs e){ if (chklist.SelectedItem != null) chklist.Items.Remove(chklist.SelectedItem); } 双击timer编辑Tick事件

private void timer_Tick(object sender, EventArgs e){ chklist.Refresh();

for (int i = 0; i < chklist.Items.Count; i++) {

TimerData td = (TimerData)chklist.Items[i];

if ((td.StopTime - DateTime.Now).TotalMilliseconds < 200) {

bool t=chklist.GetItemChecked(i); chklist.Items.Remove(td); progress.Value = 0;

if (t) MessageBox.Show(\ + td.StopTime.ToString()); } } try {

if (chklist.SelectedItem != null) {

TimerData td = (TimerData)chklist.SelectedItem;

progress.Value = (int)(((td.StopTime - DateTime.Now).TotalMilliseconds / (td.StopTime - td.StartTime).TotalMilliseconds) * 100); }

else if (chklist.Items.Count != 0) {

TimerData td = (TimerData)chklist.Items[0];

progress.Value = (int)(((td.StopTime - DateTime.Now).TotalMilliseconds / (td.StopTime - td.StartTime).TotalMilliseconds) * 100); } }

catch { progress.Value = 0; } }

? 运行

托盘区图标NotifyIcon:

这是一个常用的控件,系统任务栏的最右侧即托盘区(也称通知区)

托盘区图标控件使窗体可以在那里创建一个图标。本节将在上一个例子的基础上加以改进,用托盘区图标的气泡提示代替消息框。 【扩展】气泡提示(必须先完成上一节) ? 拖拽一个托盘区图标 ? 命名为icon

? 改变icon.Icon属性: ?

单击右侧的按钮

? ? ? ? ? 选择合适的图标(*.ico文件)打开,若导入成功如图

设置icon.BalloonTipIcon=Info 设置icon.Text为Timer 修改timer.Tick事件

private void timer_Tick(object sender, EventArgs e) {

chklist.Refresh();

for (int i = 0; i < chklist.Items.Count; i++) {

TimerData td = (TimerData)chklist.Items[i];

if ((td.StopTime - DateTime.Now).TotalMilliseconds < 200) {

bool t=chklist.GetItemChecked(i); chklist.Items.Remove(td); progress.Value = 0; if (t) {

//MessageBox.Show(\改动处 icon.BalloonTipTitle = \; //气泡初始化 icon.BalloonTipText=\ + td.StopTime.ToString(); icon.ShowBalloonTip(2000); } } } try {

if (chklist.SelectedItem != null) {

TimerData td = (TimerData)chklist.SelectedItem;

progress.Value = (int)(((td.StopTime - DateTime.Now).TotalMilliseconds / (td.StopTime - td.StartTime).TotalMilliseconds) * 100); }

else if (chklist.Items.Count != 0) {

TimerData td = (TimerData)chklist.Items[0];

progress.Value = (int)(((td.StopTime - DateTime.Now).TotalMilliseconds / (td.StopTime - td.StartTime).TotalMilliseconds) * 100);