使用C#写winform小程序入门

帮朋友要写一个自用的winform小程序,一开始打算拿java的swing写,可是发现东西太老旧太难用了,新用的话开发效率比较低。

所以就转C#写吧,反正C#和java很相近,减少很多学习成本。
先说工具,C#一般对应的是SQLServer的数据库,安装稍有麻烦,我这有两个安装条件一直无法满足,算了,还是用mysql。

开发工具的话,最常用的Visual Studio,最新版的单单是winform的功能就要5个G之大。。。。。。网上又搜了搜,发现一款叫Sharpdevelop的轻量级的C#开发软件可以用之。(使用时有一个小问题,有时候对于winform界面操作多次后,编译或者保存会把winform的designer中的内容修改掉,导致可能只是修改了一个按钮的名字,winform界面就报错出不来了,而且designer中的内容还不能撤销刚才的修改。。。。。。不知道是下的软件问题还是我不会用,反正多多备份吧)

先解决C#环境连接mysql数据库的问题,下载mysql-connector-net,是一个msi格式的文件,双击安装即可。之后在sharpdevelop中,右击项目–添加引用,在搜索框中输入mysql,选择mysql.data。(就是刚才安装的东西)
在这里插入图片描述
这一步搞定,下一步是操作数据库,列出其中一种写法,上代码。

void nonQueryJS(String sql){
	String connetStr = "server=127.0.0.1;port=3306;user=root;password=123456; database=cake";
	MySqlConnection conn = new MySqlConnection(connetStr);
	try{
			conn.Open();
			MySqlCommand cmd = new MySqlCommand(sql,conn);
			cmd.ExecuteNonQuery();
	}catch(Exception e){
			GLResultTextArea.Text = e.Message;
			return;
	}finally{
			 conn.Close();
	}
}	

sql语句作为入参,在做非查询的操作的时候,使用ExecuteNonQuery方法来执行。如果是查询,使用ExecuteReader来获得查询结果。

有了数据来源,接下来记录一些我在winform中的常用元素的用法。


TextBox:普通的文本输入框,如果想用可以多行输入的textarea的话,将Multiline属性设置为true即可。textBox1.Text = “” 可以设置文本框中的内容。


Label和Button:没啥说的。


DataGridView:将sql语句的查询结果填充到表格使用DataGridView组件,将组件拖动到winform上,
右击–Add Colume 可以为表格添加列的内容。
在这里插入图片描述
右击–Edit Colume 可以编辑列的一些属性:
在这里插入图片描述
ReadOnly:只读。Width:宽度。AutoSizeMode:选择Fill时是将列填充满表格,选择Fill的时候,要对Width进行设置才可以得到合适的列宽。

表格刚拖动到winform的时候,是这样的。
在这里插入图片描述
默认行列可编辑,行高和列高可编辑,列前有个带 * 的列头,默认可以新增,所以下面会多出一个空白行。
设置RowHeaderVisible为False去掉前面带 * 的列头。
设置AllowUserToAddRows为fales去掉下面的新增的空白行。
设置AllowUserToResizeRows为fales禁止编辑行高。
设置SelectionMode为FullRowSelect点击选中一整行。CellSelect是默认的选中一个单元格。

DataGridView的数据填充:将sql查询语句的结果放在表格中(多列):

	MySqlCommand cmd = new MySqlCommand(sql,conn);
  	dr = cmd.ExecuteReader();
 	while(dr.Read()){
		GLProductDataGrid.Rows.Add(dr["type"].ToString(),dr["productname"].ToString(),dr["singlemoney"].ToString());
   }

获得选中单元格的值:

dataGridView1.CurrentCell.Value.ToString();

选中一行时的单元格取值:
在click事件中:

void GLTypeDataGridCellClick(object sender, DataGridViewCellEventArgs e)
		{
			if (e.RowIndex > -1){
			int indexGrid= dataGridView1.CurrentRow.Index;
			String membertel = dataGridView1.Rows[indexGrid].Cells["type"].Value.ToString();
			}

Cells后可以使用列的下标,也可以使用列名来取值。Cells[0]或者Cells[“type”],都可以,列名就是Add Colume 时的name里的值。

清空表内容:

HYmemberTable.Rows.Clear();

遍历表格内容:

int row = dataGridView1.Rows.Count;
for(int i = 0; i< row;i ++){
	String type = dataGridView1.Rows[i].Cells["type"].Value.ToString();
}	

删除选中行:

dataGridView1.Rows.Remove(dataGridView1.CurrentRow);

CheckBox的选中和去掉选中:

checkBox1.checked = true/false;

日历取值:

String birthday = dateTimePicker1.Value.ToString();

系统时间:

System.DateTime.Now.ToString()

这两个的默认的格式是yyyy/MM/dd HH:mm:ss.


在winform中添加图片:
使用PictureBox组件,可以将图片放在本地或者项目中,一帮当然是要放在项目中的,操作如下:
在项目中新建一个空的资源文件:
在这里插入图片描述
在资源文件中右击–添加文件
在这里插入图片描述
添加之后在Resource1.resx的界面中就多了一条刚才添加的图片资源,注意,这里刚添加的时候,Resource1.resx文件的左边是没有小加号的,要右击Resource1.resx–执行自定义工具,就会生成下面的那个Resource1.Designer,cs的文件,这样在PictureBox中添加资源文件的时候就可以在项目中选择了。

在这里插入图片描述
默认的图片是按原图大小填充在PictureBox中的,要把图片适应PictureBox大小,将SizeMode设置为StretchImage即可。


接下来说一说绑定事件的东西:
点击一个页面构件,右上角点击闪电标志,出现事件列表,双击事件右侧空白处,可以将对应的事件和构件绑定。
在这里插入图片描述
不同的构件有不同的事件可选,这里不一一赘述。一般通过事件名称可以翻译出该事件在什么时候触发。
随便举两个例子:
Button的,Click:点击按钮时触发。
DataGridView的,CellClick:点击表格中单元格时触发。 CellValueChanged:单元格中数据变更触发。

第1章 C#编程基础  实例1 Hello C#!  实例2 HeyGuy  实例3 预定义类型  实例4 类型转换  实例5 选择语句  实例6 循环语句  实例7 跳转语句  实例8 数组  实例9 枚举与结构类型  实例10 类  实例11 位运算  实例12 操作符重载  实例13 虚方法  实例14 委托  实例15 属性  实例16 异常处理  实例17 链表  实例18 回文数  实例19 汉诺塔  实例20 冒泡排序  实例21 插入排序  小结 第2章 界面编程  实例22 Hello Form  实例23 主菜单  实例24 上下文菜单  实例25 工具栏  实例26 状态栏  实例27 进度条  实例28 滑块控件  实例29 单选框和复选框  实例30 列表框和组合框  实例31 列表视图  实例32 树视图  实例33 Timer控件  实例34 Splitter控件  实例35 时钟控件和日历控件  实例36 MDI窗口  实例37 窗体继承  实例38 自制控件  实例39 使用自制控件  实例40 模式与非模式  实例41 会跑的按钮  实例42 绘制背景  实例43 可调窗口  实例44 托动窗体  实例45 电子便条  实例46 计算器界面设计  实例47 计算器功能实现  实例48 小闹钟  小结 第3章 图形与图像处理  实例49 简单画图  实例50 使用OnPaint绘制图形  实例51 绘制贝赛尔曲线  实例52 显示图像  实例53 消除图片背景  实例54 底片滤镜  实例55 浮雕效果  实例56 显示字体  实例57 特效字  实例58 旋转图片  实例59 打印  小结 第4章 线程 第5章 文件处理和系统操作 第6章 数据库编程 第7章 网络编程 第8章 Web应用程序的开发 第9章 多媒体 第10章 安全性 第11章 设计模式 第12章 杂例
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值