• winForm入门学习


    Windows窗体
    1. 属性:

      1. name:对象的名称
      2. windowsState:初始化窗体的大小,Normal,Minimized,Maximized
      3. StartPosition:窗体起始位置,Manual(由Location属性决定),CenterScreen(居中显示),WindowsDefaultLocation(Windows默认位置),WindowsDefaultBounds(Windows默认位置,边界由Windows决定),CenterParent(在父窗口居中)
      4. Text: 窗体的标题,给用户看
      5. MaximizeBox,MinimizeBox: 是否有最大化最小化的按钮
      6. BackColor:背景颜色
      7. BackgroundImage: 背景图片
      8. BackgroundImageLayout: 背景图片的布局, None(居左显示)、Tile(图像重复,默认值)、Stretch(拉伸)、Center(居中)、Zoom(按比例放大到合适大小)
      9. Enabled:窗体是否可用
      10. Font: 设置窗体上字体
      11. ForeColor:设置窗体上文字颜色
      12. Icon:设置窗体图标
    2. 事件

      1. load:窗体加载事件
      2. mouseClick:鼠标单击事件
      3. mouseDoubleClick:鼠标双击事件
      4. mouseMove:鼠标移动事件
      5. keyDown:键盘按下事件
      6. keyUp:键盘释放事件
      7. FormClosing:窗体关闭时事件
      8. FormClosed:窗体关闭后事件
    3. 消息框(DialogResult MessageBox.Show(提示语,窗体名,选择项按钮MessageBoxButtons ,提示语图标MessageBoxIcon)

      1. 选项按钮:OK,OKCancel,AbortRetryIgnore(中止,重试,忽略),YesNoCancel,YesNo,RetryCancel(重试,取消)
        2.提示语图标:None,(Hand,Stop,Error)红x,Question问号,(Exclamation,Warning)警告,(Asterisk,Information)提示
        3.返回值:None,Ok,Cancel,Abort(中止),Retry(重试),Ignore(忽略),Yes,No
    4. Label和LinkLabel:标签控件

      • Name: 标签名,唯一标识
      • Text:内容
      • Font:文字样式
      • FontColor:文本颜色
      • BackColor:背景颜色
      • Image:背景图片
      • AutoSize:是否自动调整标签大小 true,false
      • Size:标签大小
      • Visible:标签是否可见
        5.TextBox:文本框
      • Text: 文本内容
      • MaxLength:文本框最多输入字符个数
      • WordWrap:自动换行
      • PasswordChar:密码字符替换
      • Multiline:多行文本文本框
      • ReadOnly:只读
      • Lines:文本行数
      • ScrollBars:滚动条
    5. Button:按钮控件

    6. RadioButton:单选按钮

    7. CheckBox:多选按钮

    8. CheckedListBox:多选集合

    9. ListBox:列表

      • MultiColumn:列表是否支持多列
      • Items:列表框的值
      • SelectedItems:选中项的集合
      • SelectedItem:选中项
      • SelectedIndex:选中项的索引
      • SelectionMode:列表选择模式
        • One:只能选择一项
        • MultiSimple :可选择多项
        • None: 不可选择
        • MultiExtended:可选择多项但要按下shift
      • 方法:

        • Add: 添加项
        • Insert: 指定位置添加项
        • Remove: 移除项

           /// <summary>
           /// 添加按钮
           /// </summary>
           /// <param name="sender"></param>
           /// <param name="e"></param>
           private void Button1_Click(object sender,EventArgs e) {
           if(textBox1.Text != null && textBox1.Text != "") {
           listBox1.Items.Add(textBox1.Text);
           textBox1.Text = "";
           } else {
           MessageBox.Show("不得为空");
           }
          
           }
           /// <summary>
           /// 查看选中
           /// </summary>
           /// <param name="sender"></param>
           /// <param name="e"></param>
           private void Button2_Click(object sender,EventArgs e) {
           string s = "";
           for(int i = 0;i < listBox1.SelectedItems.Count;i++) {
           s = s + "   " + listBox1.SelectedItems[i].ToString();
           }
           MessageBox.Show("选中项为" + s);
           }
          
           /// <summary>
           /// 删除
           /// </summary>
           /// <param name="sender"></param>
           /// <param name="e"></param>
           private void Button3_Click(object sender,EventArgs e) {
           List<string> list = new List<string>();
           for(int i = 0;i < listBox1.SelectedItems.Count;i++) {
           list.Add(listBox1.SelectedItems[i].ToString());
           }
           foreach(string s in list) {
           listBox1.Items.Remove(s);
           }
           }
          
    10. ComboBox:组合框
      • DropDownStyle:外观 Simple(显示文本框和列表框,文本框可编辑),DropDown(只显示文本框,文本框可通过鼠标展开,可编辑),DropDownList(只显示文本框,文本框可通过鼠标展开,不可编辑)
      • Items: 获取或设置组合中的值
      • Text:获取或设置组合框中的文本
      • MaxDropDownItems: 获取或设置最多显示的项数
      • Stored: 是否排序
          /// <summary>
          /// 初始化
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void ComboBox_Load(object sender,EventArgs e) {
          comboBox1.Items.Add("计算机网络技术");
          comboBox1.Items.Add("软件工程");
          comboBox1.Items.Add("生物制药");
          comboBox1.Items.Add("会计");
          comboBox1.Items.Add("平面设计");
          }
          /// <summary>
          /// 添加按钮
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button1_Click(object sender,EventArgs e) {
          if (textBox1.Text == "") {
          MessageBox.Show("不得为空");
          return;
          }
          if (comboBox1.Items.Contains(textBox1.Text)) {
          MessageBox.Show("当前专业已存在");
          return;
          }
          comboBox1.Items.Add(textBox1.Text);
          textBox1.Text = "";
          }
          /// <summary>
          /// combox
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void ComboBox1_SelectedIndexChanged(object sender,EventArgs e) {
          DialogResult dialogResult = MessageBox.Show("当前所选专业为" + comboBox1.Text + "是否删除?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
          if (dialogResult == DialogResult.Yes) {
          comboBox1.Items.Remove(comboBox1.Text);
          MessageBox.Show("删除完成");
          }
          }
        
    11. PictureBox:图片控件

      • Image:获取或设置显示的图片
      • ImageLocation: 获取或设置图片路径
      • SizeMode: 设置图片显示大小和位置Normal(显示在左上角),Stretchimage(适应控件大小),AutoSize(控件大小适应图片大小),Centerimage(图片在图片控件居中),Zoom(图片自动缩放至符合图片控件的大小)
    12. Timer:定时器控件

          /// <summary>
          /// 当窗体最小化时
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void SizeChange(object sender,EventArgs e) {
          if(WindowState == FormWindowState.Minimized) {
          this.Hide();
          notifyIcon1.Visible = true;
          notifyIcon1.ShowBalloonTip(20,"demo","this is a demo",ToolTipIcon.Warning);
          }
          }
      
    13. DateTime日期时间控件

      • Short:短日期格式,例如2019/1/1
      • Long:长日期格式,例如2019年1月1日
      • Time:仅显示时间,例如22:00:00
      • Custom:用户自定义显示格式
          /// <summary>
          /// 定时器设置
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void DateTime_Load(object sender,EventArgs e) {
          dateTimePicker1.Format = DateTimePickerFormat.Time;
          timer1.Interval = 1000;
          timer1.Start();
          }
          /// <summary>
          /// 定时器触发
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Timer1_Tick(object sender,EventArgs e) {
          dateTimePicker1.ResetText();
          }
        
    14. ContextMeanStrip :右击菜单控件

    15. MonthCalendar: 时间控件
    16. treeView
          private void TreeView_Load(object sender,EventArgs e) {
          treeView1.Nodes.Add("全部信息");
          }
          /// <summary>
          /// 添加下级
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button1_Click(object sender,EventArgs e) {
          if(treeView1.SelectedNode == null) {
          MessageBox.Show("请选择节点!!!!");
          } else if(textBox1.Text != "") {
          TreeNode treeNode = new TreeNode(textBox1.Text);
          treeView1.SelectedNode.Nodes.Add(treeNode);
          } else {
          MessageBox.Show("节点信息不得为空!");
          }
          }
          /// <summary>
          /// 添加同级
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button3_Click(object sender,EventArgs e) {
          if(treeView1.SelectedNode.Parent == null) {
          MessageBox.Show("请添加下级");
          return;
          }
          if(treeView1.SelectedNode == null) {
          MessageBox.Show("请选择节点!!!!");
          } else if(textBox1.Text != "") {
          TreeNode treeNode = new TreeNode(textBox1.Text);
          treeView1.SelectedNode.Parent.Nodes.Add(treeNode);
          treeView1.ExpandAll();
          } else {
          MessageBox.Show("节点信息不得为空!");
          }
          }
          /// <summary>
          /// 删除节点
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button2_Click(object sender,EventArgs e) {
          if(treeView1.SelectedNode == null) {
          MessageBox.Show("请选择节点!!!!");
          } else if(treeView1.SelectedNode.Nodes.Count == 0) {
          treeView1.SelectedNode.Remove();
          } else {
          MessageBox.Show("请先删除子节点");
          }
          }
      
    17. listView

       /// <summary>
          /// 初始化列表
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void ListView_Load(object sender,EventArgs e) {
          //标题
          ColumnHeader c1 = new ColumnHeader();
          c1.Width = 100;
          c1.Text = "姓名";
          ColumnHeader c2 = new ColumnHeader();
          c2.Width = 50;
          c2.Text = "年龄";
          ColumnHeader c3 = new ColumnHeader();
          c3.Width = 100;
          c3.Text = "手机号";
          //显示网格线
          listView1.GridLines = true;
          //显示全行
          listView1.FullRowSelect = true;
          //设置只能单选
          listView1.MultiSelect = false;
          //显示详细信息
          listView1.View = View.Details;
          //添加标题
          listView1.Columns.Add(c1);
          listView1.Columns.Add(c2);
          listView1.Columns.Add(c3);
          }
          /// <summary>
          /// 添加
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button1_Click(object sender,EventArgs e) {
          if(label1.Text.Equals("") && label2.Text.Equals("") && label3.Text.Equals("")) {
          ListViewItem item = new ListViewItem();
          //第一列的数据
          item.Text = textBox1.Text;
          //第二列的数据
          item.SubItems.Add(textBox2.Text);
          //第三列数据
          item.SubItems.Add(textBox3.Text);
          listView1.Items.Add(item);
          MessageBox.Show("添加成功");
          //添加后把文本输入框清空
          foreach(Control c in Controls) {
          if(c is TextBox) {
          c.Text = "";
          }
          }
          } else {
          MessageBox.Show("请填写内容");
          }
          }
          /// <summary>
          /// 删除
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button2_Click(object sender,EventArgs e) {
      
          List<ListViewItem> list = new List<ListViewItem>();
          for(int i = 0;i < listView1.SelectedItems.Count;i++) {
      
          list.Add(listView1.SelectedItems[i]);
          }
          foreach(ListViewItem item in list) {
      
          listView1.Items.Remove(item);
          }
          }
      
    18. notifyIcon: 托盘控件

          /// <summary>
          /// 当窗体最小化时
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void SizeChange(object sender,EventArgs e) {
          if(WindowState == FormWindowState.Minimized) {
          this.Hide();
          notifyIcon1.Visible = true;
          notifyIcon1.ShowBalloonTip(20,"demo","this is a demo",ToolTipIcon.Warning);
          }
          }
      
    19. toolTip:气泡控件
                /// <summary>
          /// 设置气泡
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void OpenAndSaveFile_Load(object sender,EventArgs e) {
          toolTip1.ToolTipTitle = "提示";
          toolTip1.ToolTipIcon = ToolTipIcon.Info;
          toolTip1.SetToolTip(this.button1,"打开文件");
          }
      
    20. MDI窗体: 窗体内窗体
    21. progressBar进度条控件
          /// <summary>
          /// 开始跑进度条
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button1_Click_1(object sender,EventArgs e) {
          progressBar1.Maximum = 1000;
          progressBar1.Value = i;
          label1.Show();
          while (progressBar1.Value!=progressBar1.Maximum){
          label1.Text = "进度:"+progressBar1.Value*100 / progressBar1.Maximum+"%";
          label1.Refresh();
          i++;
          progressBar1.Value = i;
          Thread.Sleep(100);
          }
      
    22. panel容器
          /// <summary>
          /// 控制panel容器
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          private void Button1_Click(object sender,EventArgs e) {
          //清空容器容器中的控件
          this.panel1.Controls.Clear();
          //new一个进度条控件
          progressBar progress = new progressBar();
          //不设置或出现System.ArgumentException:“无法将顶级控件添加到控件。”
          progress.TopLevel = false;
          //让进度条控件的大小以容器大小为主
          progress.Dock = DockStyle.Fill;
          //去除窗口边界
          progress.FormBorderStyle = FormBorderStyle.None;
          //设置最大化
          progress.WindowState = FormWindowState.Maximized;
          //隐藏工具栏
          progress.Visible = false;
          //容器大小设置为窗口大小
          panel1.Height = Screen.PrimaryScreen.Bounds.Size.Height;
          panel1.Width = Screen.PrimaryScreen.Bounds.Size.Width;
          this.panel1.Controls.Add(progress);
          progress.Show();
          }
      
      相关代码在GitHub地址
    作者: JaminYe
    版权声明:本文原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
  • 相关阅读:
    挂载在snap的/dev/loop占用100%问题
    机器学习3- 一元线性回归+Python实现
    机器学习-2 模拟评估与选择
    机器学习-1 绪论
    Java面试系列第4篇-HashMap相关面试题
    Java面试系列第3篇-类的加载及Java对象的创建
    Java面试系列第2篇-Object类中的方法
    Java面试系列第1篇-基本类型与引用类型
    第3篇-如何编写一个面试时能拿的出手的开源项目?
    第2篇-如何编写一个面试时能拿的出手的开源项目?
  • 原文地址:https://www.cnblogs.com/JaminYe/p/11256450.html
Copyright © 2020-2023  润新知