C#_WinForm入门学习(一)

发布于 2020-05-05  5 次阅读


前言

了解一下WinForm。

正文

了解项目

  • 创建项目
    • 打开Vs,选择窗体应用,新建成功。
  • 项目结构
    • Form1 窗体,可视化编辑窗口。
    • From1.Designer.cs 使用partial关键字,初始化属性字段。
    • From1.cs 继承Form,处理逻辑。
    • From1.resx 查看资源引用。
    • Program.cs 程序入口。
  • 右键项目名新建窗体,产生第二个窗体,然后new并传参,引入。
  • 窗体
    • 属性 常用的Name、Text、Bg等
    • 事件 在属性中小闪电中查看,常用的Load、KeyDown等
  • 视图 --》工具箱 常用的一些组件
  • Button为例子,右键属性
    • Location基于窗口左上角为圆点的坐标(point类型),在unity是Vector2
    • size 大小
    • Image

常用组件

  • McssageBox 提示框

    //弹出消息框,并获取消息框的返回值
    DialogResult dr = MessageBox.Show("是否打开新窗体?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    //如果消息框返回值是Yes,显示新窗体
    if (dr == DialogResult.Yes)
    {
    MessageForm messageForm = new MessageForm();
    messageForm.Show();
    }
    //如果消息框返回值是No,关闭当前窗体
    else if (dr == DialogResult.No)
    {
    //关闭当前窗体
    this.Close();
    }
  • Lable和LinkLabel 文本和超链接文本

  • TextBox 文本框(类似InputField)

  • Button

  • RadioButton 单选按钮控件

    //单击“确定”按钮的事件
    private void button1_Click(object sender, EventArgs e)
    {
    string msg = "";
    if (radioButton1.Checked)
    {
        msg = radioButton1.Text;
    }
    else if (radioButton2.Checked)
    {
        msg = radioButton2.Text;
    }
    else if (radioButton3.Checked)
    {
        msg = radioButton3.Text;
    }
    MessageBox.Show("您选择的权限是:" + msg, "提示");
    }
  • CheckBox 复选框

  • CheckListBox 复选框列表

  • ListBox 列表框

  • ComboBox 组合框

  • PictureBox 图片框

    • pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
  • Timer 计时器

  • DataTimePicker 时间日期

  • MouthCalendar 日历

  • ContextMenuStrip 右键菜单控件

  • MenuStrip 菜单栏控件

  • ToolStrip 工具栏控件

  • MDI 窗体中开启窗体

  • ColorDialog 颜色文本框

  • FontDialog 字体文本框

  • RichTextBox 富文本

  • OpenFileDialog和SaveFileDialog 打开文件和保存文件

    • 先从工具拖出对应组件。
    • 保存的文件必须写文件后缀。
    • 读取文本为例
      //读取文件
      private void button4_Click(object sender, EventArgs e)
      {
      DialogResult dr = openFileDialog1.ShowDialog();
      //获取所打开文件的文件名
      string filename = openFileDialog1.FileName;
      if (dr == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(filename))
      {
      StreamReader sr = new StreamReader(filename);
      richTextBox1.Text = sr.ReadToEnd();
      sr.Close();
      }  
      }
      //保存文件
      private void button5_Click(object sender, EventArgs e)
      {
      DialogResult dr = saveFileDialog1.ShowDialog();
      string filename = saveFileDialog1.FileName;
      if (dr == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(filename))
      {
      StreamWriter sw = new StreamWriter(filename, true, Encoding.UTF8);
      sw.Write(richTextBox1.Text);
      sw.Close();
      }
      }

基本操作就是这样,其余没什么可讲的,就是每个组件有自己的属性。


不积跬步,无以至千里;不积小流,无以成江海。