第11章 Windows应用程序高级控件
来源:互联网 发布:合肥优化外包公司 编辑:程序博客网 时间:2024/05/22 03:48
一、存储图像控件(ImageList控件)
1 在ImageList控件中添加图像
代码:
private void Form1_Load(object sender, EventArgs e)
{
string path = "01.jpg";
string path2 = "02.jpg";
Image Mimg = Image.FromFile(path, true); //创建一个Image对象
Image Mimg2 = Image.FromFile(path2, true);
imageList1.Images.Add(Mimg); //使用Images属性的Add方法向控件中添加图片
imageList1.Images.Add(Mimg2);
imageList1.ImageSize = new Size(216, 138);//设置图片大小
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Image = imageList1.Images[0]; //pictureBox的图片是imageList中索引为0的图片
}
private void button2_Click(object sender, EventArgs e)
{
pictureBox1.Image=imageList1.Images[1];
}
2 在ImageList控件中移除图像
imageList1.Images.RemoveAt(0); //移除imageList1中的单张图片
imageList1.Images.Clear(); //移除imageList1中的全部图片
二、列表视图控件(listView控件)
1 在ListView控件中添加/移除项
代码:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("项目不能为空");
}
else
{
listView1.Items.Add(textBox1.Text);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count == 0) //选择项目数
{
MessageBox.Show("请选择要删除的项");
}
else
{
listView1.Items.RemoveAt(listView1.SelectedItems[0].Index); //SelectedItems[0].Index选择项目的索引
listView1.SelectedItems.Clear();
}
}
private void button3_Click(object sender, EventArgs e)
{
if (listView1.Items.Count == 0) //项目数
{
MessageBox.Show("项目中已经没有项目");
}
else
{
listView1.Items.Clear();
}
}
2 选择ListView控件中的项
listView1.Items.Add("明日科技"); //使用Add方法向控件中添加项目
listView1.Items.Add("C#编程词典"); //使用Add方法向控件中添加项目
listView1.Items.Add("C#从基础到项目实战"); //使用Add方法向控件中添加项目
listView1.Items[2].Selected = true; //使用Selected方法选中第3项
3 为ListView控件中的项添加图标
listView1.LargeImageList = imageList1; //大图标在控件中显示使用的imageList
imageList1.ImageSize = new Size(37, 36); //图像列表中图片的大小
imageList1.Images.Add(Image.FromFile("01.png"));
imageList1.Images.Add(Image.FromFile("02.png"));
listView1.SmallImageList = imageList1; //小图标在控件中显示使用的imageList
listView1.Items.Add("明日科技");
listView1.Items.Add("C#编程词典");
listView1.Items[0].ImageIndex = 0; //显示图像的索引
listView1.Items[1].ImageIndex = 1;
4 在ListView控件中启用平铺视图
listView1.View = View.Tile; //项在控件中的显示方式
listView1.LargeImageList = imageList1; //项大图标显示使用的图片列表imageList
//向imageList1控件中添加两张图片
imageList1.Images.Add(Image.FromFile("1.bmp"));
imageList1.Images.Add(Image.FromFile("2.bmp"));
//向控件中添加项目
listView1.Items.Add("明日科技");
listView1.Items.Add("C#编程词典");
listView1.Items.Add("C#从基础到项目实战");
listView1.Items.Add("C#项目开发全程实录");
listView1.Items.Add("C#开发典型模块大全");
//设置控件中项目的图标
listView1.Items[0].ImageIndex = 0;
listView1.Items[1].ImageIndex = 1;
listView1.Items[2].ImageIndex = 0;
listView1.Items[3].ImageIndex = 1;
listView1.Items[4].ImageIndex = 0;
listView1.TileSize = new Size(200, 50);//设置listView1控件的TileSize属性
5 为ListView控件中的项分组
//设置listView1控件的View属性,设置样式
listView1.View = View.SmallIcon;
//为listView1建立两个组
listView1.Groups.Add(new ListViewGroup("名称", HorizontalAlignment.Left));
listView1.Groups.Add(new ListViewGroup("类别", HorizontalAlignment.Left));
//向控件中添加项目
listView1.Items.Add("明日科技");
listView1.Items.Add("C#编程词典");
listView1.Items.Add("C#从基础到项目实战");
listView1.Items.Add("公司");
listView1.Items.Add("软件");
listView1.Items.Add("图书");
//将listView1控件中索引是0、1和2的项添加到第一个分组
listView1.Items[0].Group = listView1.Groups[0];
listView1.Items[1].Group = listView1.Groups[0];
listView1.Items[2].Group = listView1.Groups[0];
//将listView1控件中索引是3、4和5的项添加到第二个分组
listView1.Items[3].Group = listView1.Groups[1];
listView1.Items[4].Group = listView1.Groups[1];
listView1.Items[5].Group = listView1.Groups[1];
6.设置如下效果
属性设置:
view:Details
Columns
三. 树控件(TreeView控件)
3.1 添加和删除树节点
private void Form1_Load(object sender, EventArgs e)
{
//建立一个父节点
TreeNode tn1 = treeView1.Nodes.Add("名称");
//建立3个子节点
TreeNode Ntn1 = new TreeNode("明日科技");
TreeNode Ntn2 = new TreeNode("C#编程词典");
TreeNode Ntn3 = new TreeNode("C#从基础到项目实战");
//将这3个子节点添加到父节点中
tn1.Nodes.Add(Ntn1);
tn1.Nodes.Add(Ntn2);
tn1.Nodes.Add(Ntn3);
}
private void button1_Click(object sender, EventArgs e)
{
//如果用户选择了“名称”证明没有选择要删除的子节点
if (treeView1.SelectedNode.Text == "名称")
{
MessageBox.Show("请选择要删除的子节点"); //弹出提示
}
else
{
treeView1.Nodes.Remove(treeView1.SelectedNode);//使用Remove方法移除选择项
}
}
3.2 获取树控件中选中的节点
private void Form1_Load(object sender, EventArgs e)
{
//建立一个父节点
TreeNode tn1 = treeView1.Nodes.Add("名称");
//建立3个子节点
TreeNode Ntn1 = new TreeNode("明日科技");
TreeNode Ntn2 = new TreeNode("C#编程词典");
TreeNode Ntn3 = new TreeNode("C#从基础到项目实战");
//将3个子节点添加到父节点中
tn1.Nodes.Add(Ntn1);
tn1.Nodes.Add(Ntn2);
tn1.Nodes.Add(Ntn3);
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
label1.Text = "当前选中的节点:" + e.Node.Text;
}
3.3 为树控件中的节点设置图标
TreeNode tn1 = treeView1.Nodes.Add("组织结构");
TreeNode Ntn1 = new TreeNode("C#部门");
TreeNode Ntn2 = new TreeNode("ASP.NET部门");
TreeNode Ntn3 = new TreeNode("VB部门");
tn1.Nodes.Add(Ntn1);
tn1.Nodes.Add(Ntn2);
tn1.Nodes.Add(Ntn3);
imageList1.Images.Add(Image.FromFile("1.png"));
imageList1.Images.Add(Image.FromFile("2.png"));
treeView1.ImageList = imageList1;
imageList1.ImageSize = new Size(16,16);
treeView1.ImageIndex = 0;
treeView1.SelectedImageIndex = 1;
四 日期选择器控件(DateTimePicker控件)
4.1 使用DateTimePicker控件显示时间
dateTimePicker1.Format = DateTimePickerFormat.Time; //设置控件中显示为时间格式
textBox1.Text = dateTimePicker1.Text; //使用文本框获取控件显示的时间
4.2 使用DateTimePicker控件以自定义格式显示日期
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MMMM dd, yyyy - dddd";
label1.Text = dateTimePicker1.Text;
示例:
DateTimePicker tb = new DateTimePicker();
tb.Name = ds.Tables[0].Rows[i]["Id"].ToString();
tb.Format = DateTimePickerFormat.Custom;
tb.CustomFormat = " "; //默认为空
if (ds.Tables[0].Rows[i]["ControlValue"].ToString() != "")
{
tb.CustomFormat = "yyyy-MM-dd";
tb.Value = DateTime.Parse(ds.Tables[0].Rows[i]["ControlValue"].ToString());//给时间控件赋值
}
tb.ValueChanged += new EventHandler(DateTimePikerValueChanged);//事件
private void DateTimePikerValueChanged(object sender, EventArgs e)
{
DateTimePicker dtp = (DateTimePicker)sender;
dtp.CustomFormat = "yyyy-MM-dd";
}
4.3 返回DateTimePicker控件中选择的日期
//使用控件的Text属性获取当前控件选择的日期
textBox1.Text = dateTimePicker1.Text;
//使用Value属性的Year方法获取选择日期的年
textBox2.Text = dateTimePicker1.Value.Year.ToString();
//使用Value属性的Year方法获取选择日期的月
textBox3.Text = dateTimePicker1.Value.Month.ToString();
//使用Value属性的Year方法获取选择日期的日
textBox4.Text = dateTimePicker1.Value.Day.ToString();
五. 月历控件(MonthCalendar控件)
5.1 更改MonthCalendar控件的外观
monthCalendar1.TitleBackColor = System.Drawing.Color.Blue;//控件的标题背景为蓝色
monthCalendar1.TrailingForeColor = System.Drawing.Color.Red;//设控件其它月的日期颜色为红色
monthCalendar1.TitleForeColor = System.Drawing.Color.Yellow; //标题上的文字为黄色
monthCalendar1.ShowWeekNumbers = true; //显示周数
5.2 在MonthCalendar控件中显示多个月份
monthCalendar1.ShowWeekNumbers = true;
5.3 在MonthCalendar控件中以粗体显示特定日期
DateTime myVacation1 = new DateTime(2011, 5, 20); //实例化DateTime类,使其值为2009年3月20号
monthCalendar1.AddBoldedDate(myVacation1); //使用AddBoldedDate方法在月历中将2009年3月20号以粗体显示
monthCalendar1.UpdateBoldedDates(); //调用UpdateBoldedDates方法重绘粗体格式的日期
5.4 在MonthCalendar控件中选择日期范围:但其选择范围仅限一周(按住shift键用鼠标点击范围)
private void Form1_Load(object sender, EventArgs e)
{
//获取控件当前的日期和时间
textBox1.Text = monthCalendar1.TodayDate.ToString();
}
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
//通过SelectionStart属性获取用户选择的起始日期
textBox2.Text = monthCalendar1.SelectionStart.ToString();
//通过SelectionEnd属性获取用户选择的结束日期
textBox3.Text = monthCalendar1.SelectionEnd.ToString();
}
六. 其他高级控件
6.1 使用ErrorProvider控件验证文本框输入
测试效果
代码:
private int a, b, c;
//Validating 在控件验证时发生
private void textBox1_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
if (textBox1.Text == "") //判断是否输入商品名称
{
errorProvider1.SetError(textBox1, "不能为空");//如果没有输入则激活errorProvider1控件
}
else
{
errorProvider1.SetError(textBox1, "");// errorProvider1控件不显示消息
a = 1; //将a赋值为1
}
}
private void textBox2_Validating(object sender, CancelEventArgs e)
{
if (textBox2.Text == "") //判断是否输入订货数量
{
errorProvider2.SetError(textBox2, "不能为空");//设置errorProvider2的错误提示
}
else
{
try
{
int x = Int32.Parse(textBox2.Text);//判断是否输入数字,如果不是数字会出现异常
errorProvider2.SetError(textBox2, "");// errorProvider2控件不显示任何错误信息
b = 1; //将b赋值为1
}
catch
{
//如果出现异常,设置errorProvider2控件的错误信息
errorProvider2.SetError(textBox2, "请输入一个数");
}
}
}
private void textBox3_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
if (textBox3.Text == "") //判断是否输入订货数量
{
errorProvider3.SetError(textBox3, "不能为空");//设置errorProvider3显示的错误消息
}
else
{
errorProvider3.SetError(textBox3, "");// errorProvider3控件不显示任何消息
c = 1; //将c赋值为1
}
}
private void button2_Click(object sender, EventArgs e)
{
//清空所有文本框
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
if (a + b + c == 3) //判断a、b和c的和是否等于3
{
//弹出提示
MessageBox.Show("数据录入成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
6.2 使用HelpProvider控件调用帮助文件(按“F1”打开帮助文件)
string strPath = "helpPage.htm";
helpProvider1.HelpNamespace = strPath; //设置帮助文件的路径
helpProvider1.SetShowHelp(this, true); //指定是否显示指定控件的帮助信息
6.3 使用Timer控件设置时间间隔
示例:自动变化的时间
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 1000; //时间间隔为1秒
}
private void timer1_Tick(object sender, EventArgs e) //Tick:指定的时间间隔时发生
{
textBox1.Text = DateTime.Now.ToString();//获取系统当前日期(当计数器开始时,1秒自动获取日期)
}
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "开始")
{
timer1.Start(); //启动计数器
button1.Text = "停止";
}
else
{
timer1.Stop(); //停止计数器
button1.Text = "开始";
}
}
6.4 使用ProgressBar控件显示程序运行进度条
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Value = 0; //设置进度条的初始值
progressBar1.Minimum = 0;//设置progressBar1控件的Minimum值为0
progressBar1.Maximum = 500;//设置progressBar1的Maximum值为500
progressBar1.Step = 1;//设置progressBar1的增值为1
for (int i=0; i < 500; i++)
{
progressBar1.PerformStep();//使用PerformStep方法按Step值递增
textBox1.Text = "进度值:" + progressBar1.Value.ToString();
}
}
- 第11章 Windows应用程序高级控件
- Windows应用程序高级控件之ListView控件
- Windows应用程序高级控件之ImageList
- Windows应用程序高级控件之TreeView
- Windows 应用程序高级控件(C#)
- Windows应用程序高级控件之月历控件--MonthCalendar控件
- Windows应用程序高级控件之日期控件-DateTimePicker
- Windows应用程序高级控件之ErrorProvider,HelpProvider,Timer和ProgressBar
- windows窗体高级控件
- 第十章. Windows应用程序常用控件
- C#成魔之路<1>Windows 应用程序高级控件(1)
- C#成魔之路<2>Windows 应用程序高级控件(2)
- C++ WINDOWS API 第1章 Windows 应用程序开发入门
- BlackBerry 应用程序开发者指南 第二卷:高级--第7章 与BlackBerry应用程序通信
- 第6章 Web窗体的高级控件
- 《C#高级编程(第8版)》之用C# 2012和.NET 4.5编写Windows 8样式应用程序技巧
- 第3章 用C#编写Windows应用程序
- ASP.NET 2.0高级编程学习笔记-第3章 应用程序和页面框架
- .net调用axis提示no SOAPAction header!
- 图像解码之三——giflib解码gif图片
- __attribute__ 机制
- sqlserver获取第n行数据
- 数据源绑定JNDI步骤以及绑定后数据源存放路径
- 第11章 Windows应用程序高级控件
- (转载)Android界面布局浅议
- mpc-hc的编译说明
- JDBC连接多个SQLServer实例
- Project facet Java version 6.0 is not supported.解决办法
- 我个技术宅也无聊了自编一个植物大战僵尸网上在线恶搞版(有视频有游戏有真相)
- 一个模块接口的组成
- Windows SDK入门浅谈 — 写给初学者
- About "Rsync"