Winfrom 基础控件二
一、图片框PictureBox控件
用于在窗体的指定位置显示图片,其为不可编辑的控件,无法获得焦点。
如果PictureBox比图像大,则图像将居中显示。如果PictureBox比比图像小,则图像将居中显示并裁剪掉超出的部分。 | |
二、图片集lmageList控件
思考:PictureBox控件中只能存储一张图片,如果需要对多张图片进行展示,如何存储多张图片?
我们可以使用图片集lmageList控件,,用于存储多个图像资源,是一个图像集,通过索引访问图像集中的图片。
(2)图片集中的图像可通过其索引值或其键值进行访问。 imageList1.Images[0];
(3)所有图像都将以相同大小显示,由lmageSize属性设置。
int imgIdex = 0;
private void Form2_Load(object sender, EventArgs e)
{ //窗口加载时显示第一张图片
this.pictureBox1.Image = this.imageList1.Images[0];
this.button1.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{ //上一张
imgIdex--;
this.pictureBox1.Image = this.imageList1.Images[imgIdex];
setButton();
}
private void button2_Click(object sender, EventArgs e)
{//下一张
imgIdex++;
this.pictureBox1.Image = this.imageList1.Images[imgIdex];
setButton();
}
private void setButton()
{
this.button1.Enabled = true;
this.button2.Enabled = true;
if (imgIdex == 0)
{
this.button1.Enabled = false;
}
if (imgIdex == imageList1.Images.Count-1)
{
this.button2.Enabled = false;
}
}
}
三、计时器Timer控件
按用户定义的时间间隔引发事件的控件,程序每隔一定时间重复执行一个操作。
案例:使用Timer控件制作电子时钟
四、系统托盘Notifylcon控件
软件启动后会在系统右下角创建一个小图标,称为系统托盘,当软件在后台运行时,可以通过系统托盘对软件进行相关操作。
四、系统托盘Notifylcon控件
软件启动后会在系统右下角创建一个小图标,称为系统托盘,当软件在后台运行时,可以通过系统托盘对软件进行相关操作。
树型控件TreeView
一、树型控件TreeView概述 :
(2)由层叠的节点(Node)分支构成,每个节点由图像和标签组成
(3)每个TreeView控件均包含一个或多个根节点,根节点下面包含多个子节点,子节点下面还可以包含子节点(4)包含子节点的节点可以展开或折叠
二、添加、删除树节点:
(1)添加窗体"TreeViewForm",并向其中拖入TreeView控件
(2)选中TreeView控件,点击右上角的小三角图标,弹出快捷菜单。
(3)点击“编辑节点",打开“TreeNode编辑器”,按层级关系添加树节点,同时也可以删除树节点通过代码添加树节点:
(2)设置TreeView在父容器中停靠,name属性为tv_tencent
(3)为窗体添加Load事件,在事件处理函数中编码添加树节点,描述腾讯公司管理团队成员的信息,
private void Form2_Load(object sender, EventArgs e)
{
#region 通过实例创建treeView节点
//创建根节点
TreeNode root = new TreeNode("中南林涉外学院");
root.Name = "s1";
this.treeView1.Nodes.Add(root); //添加根节点附加到控件上
//创建专业节点
TreeNode zy1 = new TreeNode("软件工程");
zy1.Name = "z1";
TreeNode zy2 = new TreeNode("电子信息");
zy2.Name = "z2";
//专业节点附加根节点
root.Nodes.Add(zy1);
root.Nodes.Add(zy2);
//创建课程节点
TreeNode Course1 = new TreeNode("C#");
Course1.Name = "C#";
TreeNode Course2 = new TreeNode("Java");
Course2.Name = "Java";
TreeNode Course3 = new TreeNode("数电");
TreeNode Course4 = new TreeNode("模电");
//课程节点附加到专业节点
zy1.Nodes.Add(Course1);
zy1.Nodes.Add(Course2);
zy2.Nodes.Add(Course3);
zy2.Nodes.Add(Course4);
//所有节点展开
this.treeView1.ExpandAll();
//通过节点对象删除
this.treeView1.Nodes .Remove(Course1);
//通过节点下标删除
this.treeView1.Nodes[0].Nodes[0].Nodes.RemoveAt(1);
//通过键 name属性 删除
this.treeView1.Nodes["s1"].Nodes["z1"].Nodes.RemoveByKey("C#");
#endregion
//*********************************************************************************************************************
#region 通过键值对创建treeView节点
this.treeView1.Nodes.Add("001", "中南林涉外学院");
this.treeView1.Nodes["001"].Nodes.Add("001001", "软件工程");
this.treeView1.Nodes["001"].Nodes.Add("001002", "电子信息");
this.treeView1.Nodes["001"].Nodes["001001"].Nodes.Add("001001001", "C#");
this.treeView1.Nodes["001"].Nodes["001001"].Nodes.Add("001001002", "Java");
this.treeView1.Nodes["001"].Nodes["001002"].Nodes.Add("001002001", "数电");
this.treeView1.Nodes["001"].Nodes["001002"].Nodes.Add("001002002", "模电");
//通过键删除节点
this.treeView1.Nodes["001"].Nodes["001002"].Nodes.RemoveByKey("001002002");
#endregion
}
}
三、管理节点图标
需要在TreeView的节点中使用图标,我们需要借助lmageList控件,所以我们首先需要做如下操作:
(1)向窗体中添加lmageList控件,向lmageList控件中添加需要的图片。
(2)将lmageList控件与TreeView控件进行关联,即设置TreeView控件的lmageList属性。
设置Imagelndex属性和Selectedlmagelndex属性指定图片在lmageList中的索引标号,
【1】通过编辑器添加的节点,直接在编辑中为每个节点设置|magelndex属性和Selectedlmagelndex属性,
【2】通过代码,使用TreeNode对象添加的节点,在代码中为每个TreeNode设置lmagelndex属性和Selectedlmagelndex属性。
四、响应事件,获取选中节点
为TreeView控件添加AfterSelect事件,节点被选中后触发,在事件处理函数中
列表视图ListView
展示数据
(1)ListView控件可以展示多项数据,ltems属性表示所有项的集合。
(3)每个ListViewltem对象中包含Subltems属性表示该项中所有子项的集合
给ListView添加删除项目
特别注意:如果ListView与lmageList关联,ListView的Detail视图中的行高会随着小图标视图的lmagelist的图像高度而改变。而且取消与lmageList的关联后也无法还原,此时可以通过设置|mageList的图像大小来控制行高。
(2)设置ListView控件的Dock属性在父容器中停靠,name属性为IvTimi。
(3)向ListView控件中添加列(点击右上角三角,编辑列)。
(4)设置ListView控件的显示视图为Detail,此时可以看到列标题。
(5)在窗体加载时,编写代码为ListView添加项。 需要先通过编辑器绑定图片集
private void Form3_Load(object sender, EventArgs e)
{ //编写代码为ListView添加项
ListViewItem listViewItem = new ListViewItem("云中君");
listViewItem.SubItems.Add("强");
listViewItem.SubItems.Add("强");
listViewItem.SubItems.Add("强");
listViewItem.SubItems.Add("强");
//需要先通过编辑器绑定图片集
listViewItem.ImageIndex = 0;
this.listView1.Items.Add(listViewItem); //为listView1添加项
ListViewItem listViewItem1 = new ListViewItem("猪八戒");
listViewItem1.Name = "zbj";
listViewItem1.SubItems.Add("强");
listViewItem1.SubItems.Add("强");
listViewItem1.SubItems.Add("强");
listViewItem1.SubItems.Add("强");
//需要先通过编辑器绑定图片集
listViewItem1.ImageIndex = 1;
this.listView1.Items.Add(listViewItem1);
//为listView1添加项
}
}
//直接通过对象名进行删除
this.listView1.Items.Remove(listViewItem);
//直接通过索引下标进行删除
this.listView1.Items.RemoveAt(0);
//通过键值对进行删除 键就是listViewItem 的name属性
this.listView1.Items.RemoveByKey("zbj");
二、响应事件,获取选中项目内容
设置FullRowSelect属性为true,保证单击某项整行选中效果,
选择ListView控件的DoubleClick(双击)事件,编写如下代码:
private void listView1_DoubleClick(object sender, EventArgs e)
{
ListViewItem items = this.listView1.SelectedItems[0];
if (items != null)
{
string msg = "";
msg += "名字" + items.Text + "\n";
msg += "生命值" + items.SubItems[1].Text + "\n"; ;//items.SubItems[1] ,SubItems从1开始
msg += "攻击力" + items.SubItems[2].Text + "\n"; ;
msg += "职业" + items.SubItems[3].Text + "\n"; ;
msg += "上手难度" + items.SubItems[4].Text + "\n"; ;
MessageBox.Show(msg);
}
}
三、结合右键实现删除以及视图切换
并设置ListView控件的ContextMenuStrip属性用来关联ListView控件和ContextMenuStrip控件:
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{ //判断SelectedItems是否为空,空集合未选择 直接return
if (this.listView1.SelectedItems.Count == 0)
{
MessageBox.Show("未选择选项,请重新选择");
return;
} //获取被选择的项
ListViewItem listViewItem = this.listView1.SelectedItems[0];
this.listView1.Items.Remove(listViewItem);
}
private void 大视图ToolStripMenuItem_Click(object sender, EventArgs e)
{ //修改view属性修改视图样式
this.listView1.View = View.LargeIcon;
}
private void 小视图ToolStripMenuItem_Click(object sender, EventArgs e)
{ //修改view属性修改视图样式
this.listView1.View = View.SmallIcon;
}
private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{ //修改view属性修改视图样式
this.listView1.View = View.Details;
}
原文地址:https://blog.csdn.net/gjw3037109961/article/details/144423771
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!