首页 > 代码库 > winform窗体(二)——控件

winform窗体(二)——控件

一、窗体的事件

每一个窗体都有一个事件,这个窗体加载完成之后执行哪一段代码

位置:1)右键属性→事件→load 双击进入

         2)双击窗体任意一个位置进入

删除事件:先将事件页面里面的挂好的事件删除,再删后台代码里面的事件

技术分享
namespace WindowsFormsApplication2{    public partial class Form1 : Form    {        public Form1()//构造方法        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)// sender(事件源):谁触发的就是谁的这里是Form1的;e(事件数据)        {             //写事件        }    }}  事件
事件

 

控件在工具箱里面找,找到之后双击即可添加进来,也可以点住拖进来

※每个工具,控件,窗体都有一个name,相当于id,用来标识该对象的名称,name值不允许重复

二、控件

1、Label -- 文本显示工具

Text:需要显示的文字——属性

Label的取值赋值:

技术分享
private void Form1_Load(object sender, EventArgs e){       label1.Text = "啊哈哈哈";      MessageBox.Show(label1.Text);}
Label

 

2、TextBox -- 文本框

TextBox的取值赋值:

技术分享
private void Form1_Load(object sender, EventArgs e){     textBox1.Text = "请输入用户名";    MessageBox.Show(textBox1.Text);}
TexBox

 

3、RichTextBox --文本域

可以随意调整大小

部分属性:

Dock:定义要绑定到容器的控件边框

Multiline:控制编辑控件的文本是否能够跨越多行

ReadOnly:控制能否更改编辑控件中的文本,默认是False,改为True是只读

Enabled:指示是否已启用该控件

Visible:确定该控件是可见还是隐藏

※用法同TextBox

 

4、Button -- 按钮

text:修改按钮显示的文字

name:id

FlatStyle:确定当用户将鼠标移动到控件上并单击时该控件的外观

※点击事件:双击按钮可以时间某些功能

 

5、radioButton -- 单选按钮

text:文字

Checked:是否选中

把多个单选按钮做成互斥,winform里面没有group属性,所以要看他们父级容器(只能是上一级),如果在同一个父级下就是同一组

如果要进行分组,则将同一组的按钮放到同一个容器下 用Panel

取选中值:

每一种工具都是一个类 如:radiobutton都是radiobutton类

每一个窗体都继承自form类 所有工具也均继承自一个父类就是Control

技术分享
private void button2_Click(object sender, EventArgs e)        {            //从form1中所有的工具(对象)            foreach (Control ctr in panel1.Controls)//取到该容器下的所有工具  是个集合            {                //判断该对象ctr是不是属于子类radiobutton                if (ctr is RadioButton)                {                    //如果是则装换类型                    RadioButton rd = ctr as RadioButton;                    if (rd.Checked)                    {                        MessageBox.Show(rd.Text);                    }                }            }        }
radiobutton--取选中值

设置某一项选中:

技术分享
private void button3_Click(object sender, EventArgs e)        {            //遍历form1中的工具            foreach (Control ctr in panel1.Controls)            {                //判断是不是子类radiobutton                if (ctr is RadioButton)                {                    //如果是强转                    RadioButton rd = ctr as RadioButton;                    if (rd.Text == "")                    {                        rd.Checked = true;                    }                }            }        }
radiobutton--设置选中

※利用代码往容器里添加工具:

技术分享
private void Form1_Load(object sender, EventArgs e)        {            //首先造一个该工具的对象            RadioButton radiobutton4 = new RadioButton();            //赋值            radiobutton4.Text = "";            //括号里面是一个父类,里氏代换原则            panel1.Controls.Add(radiobutton4);        }
代码添加工具

 

6、checkbox -- 复选框组

Checked属性:是否选中

Tag属性:可以存储自定义数,用户自己定义

取选中值:

技术分享
private void button4_Click(object sender, EventArgs e)        {            foreach (Control ctr in panel2.Controls)            {                if (ctr is CheckBox)                {                    CheckBox ck = ctr as CheckBox;                    if (ck.Checked)                    {                        MessageBox.Show(ck.Text);                    }                }            }        }
checkbox--取选中值

读取存取的自定义数:MessageBox.Show(ck.Tag.ToString());

设置某一项选中:

技术分享
private void button5_Click(object sender, EventArgs e)        {            foreach (Control ctr in panel2.Controls)            {                if (ctr is CheckBox)                {                    CheckBox ck = ctr as CheckBox;                    if (ck.Text == "汉族")                    {                        ck.Checked = true;                    }                }            }        }
checkbox--设置选中

全选:

技术分享
private void checkBox3_CheckedChanged(object sender, EventArgs e)        {            foreach (Control ctr in panel2.Controls)            {                if (ctr is CheckBox)                {                    CheckBox ck = ctr as CheckBox;                    ck.Checked = checkBox3.Checked;                }            }        }
设置全选或全不选

 

7、listbox--列表框

items:列表框中的值 是一个集合 一般用数据库读取数据来添加

SelectionMode:指示列表框将是单项选择,多项选择还是不可选择

从数据库添加数据:

首先建立数据库连接(三个类,建类程序省略),然后用下面的程序添加;

技术分享
private void Form1_Load(object sender, EventArgs e)        {            NationDA da = new NationDA();            //给listbox指定 数据源            listBox1.DataSource = da.Select();            //指定显示的值            listBox1.DisplayMember = "Name";            //指定后台value值            listBox1.ValueMember = "Code";        }
从数据库添加数据

取多项选中的value值:

技术分享
private void button6_Click(object sender, EventArgs e)        {            foreach (Nation data in listBox1.SelectedItems)//SelectedItems获取当前选定项的集合            {                MessageBox.Show(data.Code);            }        }
获取多项选中项的value值

取选中的value值:

MessageBox.Show(listNation.SelectedValue.ToString()) 

取选中项:(取到的是实体对象)

Nation data = http://www.mamicode.com/listbox1.SelectedItem as Nation; MessageBox.Show(data.Code);

设置某项选中:

技术分享
private void button7_Click(object sender, EventArgs e)        {            //方法1:            //listBox1.SelectedIndex = 1; //设置当前选定项从0开始的索引            //方法2:            listBox1.SelectedValue = http://www.mamicode.com/"n005"; //设置指定成员属性的值        }
设置某项被选中2种方法

 

8、combobox--下拉列表

所有用法同listbox:

技术分享
private void Form1_Load(object sender, EventArgs e)        {            NationDA da = new NationDA();            //添加一项请选择            Nation data = http://www.mamicode.com/new Nation();            data.Code = "qxz";            data.Name = "请选择";            List<Nation> list = da.Select();            list.Add(data);            comboBox1.DataSource = list;            comboBox1.DisplayMember = "Name";            comboBox1.ValueMember = "Code";        }
添加数据库信息,自己再添加一项

 

9、DataTimePicker -- 日期选择控件
设置选中:

技术分享
private void button8_Click(object sender, EventArgs e)        {            //定义一个时间            string sj = "2016-1-1";            //方法1:            //dateTimePicker1.Value = http://www.mamicode.com/Convert.ToDateTime(sj);>//方法2:            dateTimePicker1.Text = sj;        }
设置时间2方法

取选中值:

技术分享
 private void button7_Click(object sender, EventArgs e){      MessageBox.Show(dateTimePicker1.Value.ToString("yyyy年MM月dd HH:mm:ss:ms"));  }
取选中时间

 

10、PictureBox

外观,Image可以选择图片路径

行为,SizeMode可以设置图片大小布局方式

 

11、Imagelist--图片集

imageList1.Images[n];

 

12、notifyicon--托盘图标工具
      Text:鼠标放上显示的文字
      Icon:托盘图标
      Visible:可见或隐藏
      ContextMenuStrip:与该图标关联的快捷菜单

 

13、MenuStrip--菜单工具
       设置热键:在编辑的时候输入(&F)
       设置快捷键:选中菜单项--右键属性--ShortCutKeys--设置快捷键
       设置分隔线:在输入的时候输入减号(-)

 

14、ContextMenuStrip--快捷菜单

 

15、ToolTip --鼠标移入提示框

ToolTipTitle:提示的标题

Error: 错误图标

Info :信息图标

None :不是标准图标 

Warning: 警告图标

在其他控件的杂项里面选择

 

16、ProgressBar --进度条
      value:来设置进度条当前进度

      MarqueeAnimationSpeed:字幕动画的速度以毫秒为单位

      Maximum:使用的范围上限

 

17、Timer -- 时钟工具

Enabled:可用不可用
Interval:间隔时间
Tick事件:间隔执行的事件

※Tick事件与进度条(ProgressBar)联合运用

技术分享
private void timer1_Tick(object sender, EventArgs e)        {            if (progressBar1.Value < 100)            {                progressBar1.Value = progressBar1.Value + 10;            }            label1.Text = DateTime.Now.ToString("HH:mm:ss");        }
联合

 

 ※以上控件的设置选中和取选中值,本人都是通过Button按钮的点击事件实现的!

  

winform窗体(二)——控件