使用C#写winform小程序入门

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 使用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的时候,是这样的。

20201012092024872.png

默认行列可编辑,行高和列高可编辑,列前有个带 * 的列头,默认可以新增,所以下面会多出一个空白行。

设置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);
• 1

CheckBox的选中和去掉选中:

checkBox1.checked = true/false;

日历取值:

String birthday = dateTimePicker1.Value.ToString();
• 1

系统时间:

System.DateTime.Now.ToString()

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


在winform中添加图片:

使用PictureBox组件,可以将图片放在本地或者项目中,一帮当然是要放在项目中的,操作如下:

在项目中新建一个空的资源文件:

在资源文件中右击–添加文件

添加之后在Resource1.resx的界面中就多了一条刚才添加的图片资源,注意,这里刚添加的时候,Resource1.resx文件的左边是没有小加号的,要右击Resource1.resx–执行自定义工具,就会生成下面的那个Resource1.Designer,cs的文件,这样在PictureBox中添加资源文件的时候就可以在项目中选择了。20201012104246930.png

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


接下来说一说绑定事件的东西:

点击一个页面构件,右上角点击闪电标志,出现事件列表,双击事件右侧空白处,可以将对应的事件和构件绑定。20201012105029228.png

不同的构件有不同的事件可选,这里不一一赘述。一般通过事件名称可以翻译出该事件在什么时候触发。

随便举两个例子:

Button的,Click:点击按钮时触发。

DataGridView的,CellClick:点击表格中单元格时触发。 CellValueChanged:单元格中数据变更触发。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
5月前
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
691 7
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
260 1
|
C#
C#入门
C#入门
126 0
|
Linux C# iOS开发
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
371 12
|
SQL API 定位技术
基于C#使用winform技术的游戏平台的实现【C#课程设计】
本文介绍了基于C#使用WinForms技术开发的游戏平台项目,包括项目结构、运行截图、实现功能、部分代码说明、数据库设计和完整代码资源。项目涵盖了登录注册、个人信息修改、游戏商城列表查看、游戏管理、用户信息管理、数据分析等功能。代码示例包括ListView和ImageList的使用、图片上传、图表插件使用和SQL工具类封装,以及高德地图天气API的调用。
基于C#使用winform技术的游戏平台的实现【C#课程设计】
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
822 8
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
399 1
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
XML 小程序 JavaScript
小程序入门之项目配置说明和数据绑定
小程序入门之项目配置说明和数据绑定
179 1
|
API C#
C#实现Winform程序右下角弹窗消息提示
C#实现Winform程序右下角弹窗消息提示
940 1

热门文章

最新文章