奇:
常用控件的使用(期间参杂着VS快捷键/常用设置)
快捷键:引用命名空间:shift+alt+F10
断点:F9
调试:F5
逐句调试(每行代码一次跳转):F11
逐过程调试:F10
重构提取方法:选中要重构的方法 ctrl+r ctrl+m 输入方法 确定
新建dll类库: 解决方案资源管理器--解决方案--右键--新建项目--选择--类库(.net Framework)会提示是.dll类库啊,不要选错了
选中后取名CarHOmeDLL 确定后文件位置如下:
引用类库方式:
工程引用:好处
DLL引用
浏览找到并选中DLL文件在确定
(红框)第一个是工程引用第二个是dll引用
组件:
公共控件:
WinForm 窗体
Button 按钮
ComboBox select下拉列表框 选中它单机三角图标编辑页或者在属性面板的数据Items中添加option(DataSource是数据绑定项)
Checkbox 复选框
CheckedListBox 复选框列表(一个组垂直包含个checkbox多选框)
DateTimePicker 日期时间控件
GroupBox 分组控件
Label 标签
LinkLabel
ListBox 多选列表框
ListView 列表控件(多作为表格展示 先设置编辑列 行为的HeaderStyle:选择是否能点击 ; 外观的View:显示模式【一般选Details详细模式来显示表格】)
LinkLabel 超链接标签
MaskedTextBox
MonthCalendar
NotifyIcon 托盘控件
NumericUpDown 数字输入框
PictureBox 图片框
ProgressBar 进度条
RadioButton 单选框
RichTextBox
TreeView 树控件
Textbox 文本框
ToolTip 气泡提示
webBrowser
容器:
Panel 面板
SplitContainer 分隔容器
TabControl 选项卡控件(tab页)
FlowLayoutPanel
GroupBox
tableLayoutPanel
ta'btabControl
//窗体初始化
默认显示第几个
tabControl1.SelectedIndex = 0;
//Alignment: 调节tab显示在上下左右的位置
菜单和工具栏:
ContextMenuStrip 右键菜单
MenuStrip 菜单控件(类似导航)
StatusStrip 状态栏控件
ToolStrip 工具栏控件
ImageList 图片集合 ????(4.7版本未找到)
Timer 时间控件
对话框:
FolderBrowserDialog 文件夹选择
OpenFileDialog 打开文件
SaveFileDialog 保存文件
数据
Chart
BindingNavigator
BindingSource
DataGridView
DataSet
组件
BackgroundWorker
DirectoryEntry
DirectorySearcher
ErrorProvider
Eventlog
FilesystemWatcher
CHelpProvider
ImageList
MessageQueue
PerformanceCounter
Process
SerialPort
ServiceController
Timer
窗体属性面板:
布局
--AuteScaleMode 自动缩放模式
--Autoscroll 自动滚动
--AltoScrollMargin 自动滚动边距
--AutoScrollMinsize 自动滚动最小尺寸
--AutoSize 自动大小
--AutoSizeMode 拖动窗口改变大小开关
--Location 位置
--MaximumSize 最大尺寸
--MinimumSize 最小尺寸
--Padding 是布局还是内边距?
--Size 字体大小?
--StartPosition 启动窗体出现的位置
--Windowstate 窗口状态
窗口样式(WindowStyle)
--ControlBox 控制按钮组
--HelpButton 帮助按钮
--lcon 图标
-size
--IsMdiContainer 是不是MDI容器
--MainMenuStrip 主菜单条
--MaximizeBox 窗口最大化
--MinimizeBox 窗口最小化
--Opacity 不透明度
--Showlcon 显示图标
--ShowlnTaskbar 在任务栏中显示
--SizeGripStyle 大小手柄样式
--TopMost 是否为最顶层元素
--TransparencyKey 透明色
行为
--AllowDrop 允许拖放
--AutoValidate 自动验证
--ContextMennuStrip 上下文菜单条
--DoubleBuffered 双缓冲
--enabled 可用
--ImeMode 输入法模式
焦点(Focus)
--CausesValidation 是否触发验证
可访问性(Accessibility)
--AccessibleDescription 可访问描述
--AccessibleName 可访问名称
--AccessibleRole 可访问角色
设计
(Name) 默认Form1 对应 this.Name = "帝国标签窗口"; (这个自动生成窗口事件函数名时会取它的值;值_事件名)
language 语言
Localizable 本地化
locked 锁定
数据
--(ApplicationSettings)
--(PropertyBinding)
--Location
--Text
--(DataBindings) 数据绑定
--(Advanced)
--Tag
--Text
--Tag
外观(Appearance)
--BackColor 背景颜色
--Backgroundlmage 背景图片
--BackgroundImageLayout 背景图片布局
--Cursor 光标选择
--Font
--Name:宋体
--Size
--Unit
--Bold
--GdiChartSet
--GdVerticalFont
--GdiVerticalFont
--Italic
--Strikeout
--Underline
--ForeColor
--FormBorderStyle 字体边框样式
--RightToLeft 从右到左
--RightToLeftLayout 从右到左布局
--Text 窗口标题 对应 this.Text = "帝国cms标签";
--UseWaitCursor 用户等待光标
杂项
--AcceptButton 接受按钮
--CancelButton 取消按钮
--KeyPreview 键预览
--tooltip1上的ToolTip
窗体组件属性面板:
TabIndex 设置按下tab键时跳转的顺序 对表单组件特别有用
窗体事件:
布局:
DpiChanged
DpiChangedAfterParent
DpiChangedBeforeParent
Layout 布局
MdichidActivate MDI 子窗口行为
Move 移动 在移动控件时发生。(从 Control 继承。)
PaddingChanged 边框更改 在控件空白区更改时发生。(从 Control 继承。)
Resize 重置大小 在调整控件大小时发生。(从 Control 继承。)
操作
Click 单击 在单击控件时发生。(从 Control 继承。)
Doubleclick 双击
MouseCaptureChanged 鼠标捕获更改 当控件失去鼠标捕获时发生。(从 Control 继承。)
MouseClick 鼠标单击 在鼠标单击该控件时发生。(从 Control 继承。)
MouseDoubleClick 鼠标双击 当用户使用鼠标双击 RadioButton 控件时发生。
ResizeBegin 重置尺寸开始
ResizeEnd 重置尺寸结束
Scroll 滚动
行为
ChangeUICues 更改界面提示 在焦点或键盘用户界面 (UI) 提示更改时发生。(从 Control 继承。)
ControlAdded 控制已加入 在将新控件添加到 Control.ControlCollection 时发生。(从 Control 继承。)
ControlRemoved 控制已移除 在从 Control.ControlCollection 移除控件时发生。(从 Control 继承。)
FormClosed (点击X,直接结束进程不会触发)关闭窗体事件发生在FormClosing之后
FormClosing (点击x,直接结束进程不会触发)关闭窗体
HelpButtonClicked 帮助按钮已点击
HelpRequested 帮助已请求
ImeModeChanged 输入法模式已更改 当 ImeMode 属性更改时发生。此事件与此类无关。(从 ButtonBase 继承。)
InputLanguageChanged 输入语言已更改
InputLanguageChanging 输入语言准备更改
Load 窗体初始化:
执行步骤program.cs的Main方法执行Application.Run(new Form1());然后调用Form1.cs中的Form1->Form1()析构函数中的InitializeComponent(){ this.Load += new System.EventHandler(this.Form1_Load);}最后调用Form1_Load()
QueryAccessibilityHelp 查询访问帮助 在 AccessibleObject 为辅助功能应用程序提供帮助时发生。(从 Control 继承。)
Shown 展示 在控件样式更改时发生。(从 Control 继承。)
StyleChanged 样式已更改 系统颜色更改时发生。(从 Control 继承。)
SystemColorsChanged 系统颜色更改
按键
KeyDown 按键按下瞬间
KeyPress 按键按住
KeyUp 按键抬起瞬间
PreviewKeyDown 预览键按下 在焦点位于此控件上的情况下,当有按键动作时发生(在 KeyDown 事件之前发生)。(从 Control 继承。)
焦点
Activated 活动
Deactivate 非活动
Enter 进入
Leave 离开
Validated 已验证 在控件完成验证时发生。(从 Control 继承。)
Validating 验证中
属性已更改
AutoSizeChanged 当 AutoSize 属性的值更改时发生。(从 ButtonBase 继承。)
AutoValidateChanged
BackColorChanged 当 BackColor 属性的值更改时发生。(从 Control 继承。)
BackgroundlmageChanged 当 BackgroundImage 属性的值更改时发生。(从 Control 继承。)
BackgroundlmageLayoutChanged 当 BackgroundImageLayout 属性更改时发生。(从 Control 继承。)
BindingContextChanged 当 BindingContext 属性的值更改时发生。(从 Control 继承。)
CausesValidationChanged 当 CausesValidation 属性的值更改时发生。(从 Control 继承。)
ClientSizeChanged 当 ClientSize 属性的值更改时发生。 (从 Control 继承。)
ContextMenuStripChanged 当 ContextMenuStrip 属性的值更改时发生。 (从 Control 继承。)
CursorChanged 当 Cursor 属性的值更改时发生。(从 Control 继承。)
DockChanged 当 Dock 属性的值更改时发生。(从 Control 继承。)
EnabledChanged 在 Enabled 属性值更改后发生。(从 Control 继承。)
FontChanged 在 Font 属性值更改时发生。(从 Control 继承。)
ForeColorChanged 在 ForeColor 属性值更改时发生。(从 Control 继承。)
LocationChanged 在 Location 属性值更改后发生。(从 Control 继承。)
MaximizedBoundsChanged
MaximumSizeChanged
ParentChanged 在 Parent 属性值更改时发生。(从 Control 继承。)
RegionChanged 当 Region 属性的值更改时发生。(从 Control 继承。)
RightToLeftChanged 在 RightToLeft 属性值更改时发生。(从 Control 继承。)
RightToLeftLayoutChanged
SizeChanged 在 Size 属性值更改时发生。(从 Control 继承。)
TextChanged 在 Text 属性值更改时发生。(从 Control 继承。)
VisibleChanged 在 Visible 属性值更改时发生。(从 Control 继承。)
鼠标
MouseDown 鼠标按下 当鼠标指针位于控件上并按下鼠标键时发生。(从 Control 继承。)
MouseEnter 鼠标进入 在鼠标指针进入控件时发生。(从 Control 继承。)
MouseHover 鼠标移入 在鼠标指针停放在控件上时发生。(从 Control 继承。)
MouseLeave 鼠标离开 在鼠标指针离开控件时发生。(从 Control 继承。)
MouseMove 鼠标移动 在鼠标指针移到控件上时发生。(从 Control 继承。)
MouseUp 鼠标抬起 在鼠标指针在控件上并释放鼠标键时发生。(从 Control 继承。)
MouseWheel????? 在移动鼠标轮并且控件有焦点时发生。(从 Control 继承。)
数据
(DataBindings) 数据绑定
--CollectionChanged
--CollectionChanging
拖放
OragDrop 拖放
OragEnter 拖放进入
OragLeave 拖放离开
DragOver 拖放经过
GiveFeedback 给予反馈
QueryContinueDrag 查询继续拖动 在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。(从 Control 继承。)
外观
Paint 在重绘控件时发生。(从 Control 继承。)
TabIndexChanged 在 TabIndex 属性值更改时发生。(从 Control 继承。) ????????
TextChanged 在 Text 属性值更改时发生。(从 Control 继承。)
初始:
app.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> </configuration>
cs
namespace WindowsFormsApp2 { partial class Form1 { /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要修改 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(800, 450); this.Text = "Form1"; } #endregion } }
program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp2 { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
Accessibility:可访问
AccessibleDescription::可访问描述
AccessibleName:可访问名称
AccessibleRole:可访问角色
添加资源:右键双击红框项
笔记:
窗体
怎么修改标题 :外观--Text属性即可.
怎么修改左上角图标 : 窗口样式->ICON属性 图标最合适的大小 32*32
窗体出现的位置:布局--StartPosition
StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
固定窗体的大小(不允许修改窗体大小)
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 不允许修改窗体大小[GrowOnly(默认)]
是否有最大化,最小化.
this.MaximizeBox = false;
按钮
基本特性:
鼠标滑过(按钮获取焦点)时,按钮的背景色发生改变(浅蓝色)[原始状态为灰色]
鼠标"左键"按下时,按钮背景色为深蓝色,鼠标弹起时,变为浅蓝色
控件都会有Enable属性.标示当前控件是否允许使用.如果不想对其操作,那么Enable属性设置为False;
MouseClick与Click
共同点: 都会接受鼠标左键单击事件.并且具有共同信息(鼠标单击的位置(x/y坐标),鼠标按下的键,按下次数);
不同点: MouseClick 会接受鼠标其他按键,click不会.[其他按键:右键/中键/其他](button比较特殊,仅接受鼠标左键.)
下拉列表框 ComboBox
快速监视快捷键:Ctrl+d+q
text 属性获取的数据为控件显示的内容.
SelectedItem 是获取当前选择的对象.
如果当前DropDownStyle 为DropDown时,可以更改下拉框中的内容.那么将会引发使用SelectedItem的null异常.
为了避免用户修改,我们一般会设置如果当前DropDownStyle为如果当前DropDownList
如果需要做一个联动的逻辑.
首先获取 cmb1 选择的数据
然后设置 cmb2 选择的项目.
二级联动
using System; using System.Windows.Forms; using System.Collections.Generic; namespace WindowsFormsApp2 { public partial class 帝国标签窗体 : Form { public 帝国标签窗体() { InitializeComponent(); } Dictionary<string, string> dic = new Dictionary<string, string>(); private void 帝国标签窗体_Load(object sender, EventArgs e) { //窗体初始化 /* cmb下拉框.SelectedIndex = 0;//默认选中第一个 cmb下拉框.Items.Add("我"); cmb下拉框.Items.Add("like"); string[] strs = new string[] {"a","b" ,"c"}; cmb下拉框.Items.AddRange(strs); */ dic.Add("北京", "海淀,通州,朝阳"); dic.Add("上海", "普陀区,闵行区,陆家嘴"); foreach (var item in dic.Keys) { cmb下拉框.Items.Add(item.ToString()); } cmb下拉框.SelectedIndex = 0;//默认选中第一个 } private void Button1_Click(object sender, EventArgs e) { //获取下拉框数据 string textstr = cmb下拉框.Text; object obj= cmb下拉框.SelectedItem; string str = cmb下拉框.SelectedText; object obj2 = cmb下拉框.SelectedValue; } private void Cmb下拉框_SelectedIndexChanged(object sender, EventArgs e) { //清空原有数据 cmb下拉框2.Items.Clear(); //获取选中项 string selecttext = cmb下拉框.SelectedItem.ToString(); //使用选中项目获取dic中的value string strvalue = dic[selecttext]; string[] strs = strvalue.Split(','); cmb下拉框2.Items.AddRange(strs); cmb下拉框2.SelectedIndex=0; } } }