winForm入门学习
Windows窗体
属性:
- name:对象的名称
- windowsState:初始化窗体的大小,Normal,Minimized,Maximized
- StartPosition:窗体起始位置,Manual(由Location属性决定),CenterScreen(居中显示),WindowsDefaultLocation(Windows默认位置),WindowsDefaultBounds(Windows默认位置,边界由Windows决定),CenterParent(在父窗口居中)
- Text: 窗体的标题,给用户看
- MaximizeBox,MinimizeBox: 是否有最大化最小化的按钮
- BackColor:背景颜色
- BackgroundImage: 背景图片
- BackgroundImageLayout: 背景图片的布局, None(居左显示)、Tile(图像重复,默认值)、Stretch(拉伸)、Center(居中)、Zoom(按比例放大到合适大小)
- Enabled:窗体是否可用
- Font: 设置窗体上字体
- ForeColor:设置窗体上文字颜色
- Icon:设置窗体图标
事件
- load:窗体加载事件
- mouseClick:鼠标单击事件
- mouseDoubleClick:鼠标双击事件
- mouseMove:鼠标移动事件
- keyDown:键盘按下事件
- keyUp:键盘释放事件
- FormClosing:窗体关闭时事件
- FormClosed:窗体关闭后事件
消息框(DialogResult MessageBox.Show(提示语,窗体名,选择项按钮MessageBoxButtons ,提示语图标MessageBoxIcon)
- 选项按钮: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
- 选项按钮:OK,OKCancel,AbortRetryIgnore(中止,重试,忽略),YesNoCancel,YesNo,RetryCancel(重试,取消)
Label和LinkLabel:标签控件
- Name: 标签名,唯一标识
- Text:内容
- Font:文字样式
- FontColor:文本颜色
- BackColor:背景颜色
- Image:背景图片
- AutoSize:是否自动调整标签大小 true,false
- Size:标签大小
- Visible:标签是否可见
5.TextBox:文本框 - Text: 文本内容
- MaxLength:文本框最多输入字符个数
- WordWrap:自动换行
- PasswordChar:密码字符替换
- Multiline:多行文本文本框
- ReadOnly:只读
- Lines:文本行数
- ScrollBars:滚动条
Button:按钮控件
RadioButton:单选按钮
CheckBox:多选按钮
CheckedListBox:多选集合
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);
}
}
- 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("删除完成");
}
}
PictureBox:图片控件
- Image:获取或设置显示的图片
- ImageLocation: 获取或设置图片路径
- SizeMode: 设置图片显示大小和位置Normal(显示在左上角),Stretchimage(适应控件大小),AutoSize(控件大小适应图片大小),Centerimage(图片在图片控件居中),Zoom(图片自动缩放至符合图片控件的大小)
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);
}
}
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();
}
ContextMeanStrip :右击菜单控件
- MonthCalendar: 时间控件
- 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("请先删除子节点");
}
}
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);
}
}
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);
}
}
- 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,"打开文件");
}
- MDI窗体: 窗体内窗体
- 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);
}
- 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地址
winForm入门学习的更多相关文章
- vue入门学习(基础篇)
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Retrofit 入门学习
Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...
- MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...
- opengl入门学习
OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...
随机推荐
- uwsgi+nginx部署django项目
1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2 ...
- Swift 条件语句
条件语句通过设定的一个或多个条件来执行程序,在条件为真时执行指定的语句,在条件为 false 时执行另外指定的语句. 可以通过下图来简单了解条件语句的执行过程: Swift 提供了以下几种类型的条件语 ...
- Kibana Query Language(KQL)
语法: 官方文档 If you’re familiar with Kibana’s old lucene query syntax, you should feel right at home wit ...
- String字符串的截取
根据某个字段将字符串分割成绩部分 String str = "string number one 1/9/0"; //将字符串由/ 截取成绩部分 String[] strs = s ...
- react 组件创建
/** * 数据屏蔽 * Created by 2016-12-02. */ import React, {Component} from 'react'; export default class ...
- iOS——sqlite3的使用(iOS嵌入式关系数据库)
1>添加sqlite3动态库:libsqlite3.dylib,CoreGraphics.framework,UIKit.framework,Foundation.framework 2> ...
- Git速成学习第六课:Bug分支
Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 当你接到一个修复代码为101的任务的时候,很自然的你想创建一个分支issue-101来修复它,但 ...
- numpy中np.random.seed()的详细用法
在进行机器学习和深度学习中,我们会经常用到np.random.seed(),利用随机数种子,使得每次生成的随机数相同. numpy.randn.randn(d0,d1,...,dn) randn函数根 ...
- 【VS开发】GDI+ 用CImage类来显示PNG、JPG等图片
系统环境:Windows 7 软件环境:Visual Studio 2008 SP1 本次目的:实现VC单文档.对话框程序显示图片效果 CImage 是VC.NET中定义的一种MFC/ATL共享类,也 ...
- Zookeeper概述、特点、数据模型
Zookeeper 1.Zookeeper概述 Zookeeper是一个工具,可以实现集群中的分布式协调服务. 所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传递,来协调集群的工作. Zo ...