1、WinForm布局属性(控件与布局相关的属性,设计界面可见)
(1)Anchor:固定、锚定(无论窗口怎么变化,控件的相对位置都不变)
        - 含义:固定控件与父窗口的【上下左右边距】不变,实现控件的锚定
        - 左上角固定:选定 Top,Left(默认)
        - 顶部固定,水平拉伸:选定 Top,Left,Right
        - 居中固定:None(取消所有)
        - *注意:Anchor效果的好坏取决于控件的初始位置,因为控件的初始位置决定了控件的边距!所以要让控件固定右上角,就要初始设计时就放在右上角!
(2)Dock:停靠属性,将控件停靠在父窗口的一侧或者中央
        - Top:上,控件停靠在容器上侧,宽度填满容器,高度可以调节
        - Bottom:下,控件停靠在容器下侧,宽度填满容器,高度可以调节
        - Left:左,控件停靠在容器左侧,高度填满容器,宽度可以调节
        - Right:右,控件停靠在容器右侧,高度填满容器,宽度可以调节
        - Fill,中,控件填满容器中间剩余部分(所以说与控件添加顺序有关)
        - None,无,不使用Dock属性
        - *注意:
                a.容器之间可以嵌套,使用布局属性(容器就是存放组件的,比如Panel)
                b.Dock属性与Anchor属性不能同时使用
                c.Dock属性不是固定边距了,就是相对位置填充

2、WinForm布局属性(控件与布局相关的属性,设计界面可见)
(1)Anchor:固定、锚定(无论窗口怎么变化,控件的相对位置都不变)
        - 含义:固定控件与父窗口的【上下左右边距】不变,实现控件的锚定
        - 左上角固定:选定 Top,Left(默认)
        - 顶部固定,水平拉伸:选定 Top,Left,Right
        - 居中固定:None(取消所有)
        - *注意:Anchor效果的好坏取决于控件的初始位置,因为控件的初始位置决定了控件的边距!所以要让控件固定右上角,就要初始设计时就放在右上角!
(2)Dock:停靠属性,将控件停靠在父窗口的一侧或者中央
        - Top:上,控件停靠在容器上侧,宽度填满容器,高度可以调节
        - Bottom:下,控件停靠在容器下侧,宽度填满容器,高度可以调节
        - Left:左,控件停靠在容器左侧,高度填满容器,宽度可以调节
        - Right:右,控件停靠在容器右侧,高度填满容器,宽度可以调节
        - Fill,中,控件填满容器中间剩余部分(所以说与控件添加顺序有关)
        - None,无,不使用Dock属性
        - *注意:
                a.容器之间可以嵌套,使用布局属性(容器就是存放组件的,比如Panel)
                b.Dock属性与Anchor属性不能同时使用
                c.Dock属性不是固定边距了,就是相对位置填充

3、Winform 组件的使用
(1)TextBox:输入文本框
        - 常用属性:尺寸Size、单行/多行Multiline、密码输入PasswordChar、只读ReadOnly、显示/获取文本Text等
        - 常用事件:KeyPress按下按键(常用于输出完成点击回车,box.Text取输入值,事件e.keyChar取按下哪个键)
(2)CheckBox:复选框
        - 常用属性:尺寸Size、显示文本Text、Checked是否勾选
        - 常用事件:Click点击事件、CheckedChanged勾选状态改变事件
(3)ComboBox:下拉列表(只能单选)
        - 常用属性:
                a.添加数据项:设计器编辑添加(属性->数据->Items,一行表示一个数据项)、程序手工添加(comboBox.Items.Add("some");)
                b.其他设置:Size尺寸、Text提示文本等
        - 常用事件:
                a.获取选中的项:SelectedItem(选中项的值)、SelectedIndex(选中项的索引,-1表示未选中)
                b.选项改变事件:SelectedIndexChanged
        - 注意:Item可以添加字符串,也可以添加任意object类型(比如自定义对象),对象会以object.toString显示
(4)ListBox:列表框(展示数据、可单选/多选)
        - 常用属性:SelectionMode(单选/多选模式)
                a.单选模式获取选项:SelectedItem/SelectedIndex(选中项的值/索引)
                b.多选模式获取选项:SelectedIndices/SelectedItems(选中项的索引集合/值集合)
                c.添加数据项:设计器编辑添加(属性->数据->Items)、程序手工添加(listBox.Items.Add("some");)
        - 常用事件:SelectedIndexChanged(选项改变)
        - 注意:Item可以添加字符串,也可以添加任意object类型(比如自定义对象),对象会以object.toString显示

4、图片框与资源
(1)添加资源来源:
        - 本地文件 : 本地资源路径,比如"D\\Resources\\123.jpg"(注意使用Windows路径格式)
        - 项目资源文件:Properties/Resources.resx(项目资源文件夹下)
                a.如何添加项目资源文件:双击Properties/Resources.resx->添加资源->添加现有文件->选择本地图片->重命名(规范化,以后使用时直接调用名字使用资源)
                b.能添加什么类型的资源:字符串、文本文档、图片、视频、音频等
                c.原理:Resources.resx将添加的资源整合到了项目exe当中,因此就算删除源文件也不影响项目运行。在调用资源时,是通过自动生成的方法来获取资源。
                d.优点:将资源统一到项目中来,并且可以通过规范化的命名直接调用资源。
                e.使用:通过 Properties.Resources.资源名称; 来直接调用你的资源,方便快捷
        - 网络资源:比如"http://baidu/image/meinv.jpg"

(2)图片资源加载类:
        - C# 提供了Image抽象类,作为所有图片资源的总称
        - C# 提供了Image抽象类的具体实现类 Bitmap(位图、像素图),来具体加载读取图像。
                a.比如Bitmap img = new Bitmap("D\\Resources\\123.jpg");
                b.比如Bitmap img = Properties.Resources.img_Conv;
 
(3)图片框控件:PictureBox
        - Size、Location属性:尺寸、位置
        - Image属性:图片资源(可以通过本地/项目资源文件导入)
        - SizeMode属性:图片的适应模式(StretchImage拉伸图片和图片框相同尺寸、Zoom缩放等)
        - ErrorImage、InitialImage属性:加载失败、加载图片显示之前所显示的图片
   
(4)图片框控件可视化配置:在设计里拖动PictureBox并配置属性即可。
(5)图片框代码手动配置:


Bitmap img = Propertie.Resources.img_Conv; //读取图片资源
pictureBox.Image = img;//手动设置图片框控件 Image来源
pictureBox.SizeMode = PictureBoxSizeMode.Zoom;//手动设置图片格式