• 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 = listbox1.SelectedItem as Nation; MessageBox.Show(data.Code);

    设置某项选中:

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

    8、combobox--下拉列表

    所有用法同listbox:

    private void Form1_Load(object sender, EventArgs e)
            {
                NationDA da = new NationDA();
                //添加一项请选择
                Nation data = 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 = 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按钮的点击事件实现的!

      

  • 相关阅读:
    基于注解的ssh框架之spring配置文件
    hdu 4770 Lights Against Dudely
    便捷开发工具(未完)
    solr 简单搭建 数据库数据同步(待续)
    Nginx对某个文件夹或整个站点进行登录认证的方法
    swift 单例模式
    POJ 2823 Sliding Window(单调队列)
    Android 网络下载图片
    一个表空间offline后alert日志报ORA-01135 和ORA-01110的问题
    [c#]分析器错误消息: 发现不明白的匹配。
  • 原文地址:https://www.cnblogs.com/H2921306656/p/5838765.html
Copyright © 2020-2023  润新知