首页 > 编程语言 >Winform C# 窗体应用程序简单入门

Winform C# 窗体应用程序简单入门

时间:2024-09-10 10:51:59浏览次数:1  
标签:控件 项目 C# 点击 添加 窗体 Winform

搬运来源:https://blog.csdn.net/weixin_46262993/article/details/104169982?spm=1001.2014.3001.5502

一、什么是Winform?

WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用C#编程。C# WinForm 编程需要创建「Windows窗体应用程序」项目。
.NET 提供了大量 Windows 风格的控件和事件,我们可以直接拿来使用,上手简单,开发快速
Windows 窗体应用程序是 C# 语言中的一个重要应用,也是 C# 语言最常见的应用。这套 C# WinForm 教程将教会大家如何使用 WinForm 进行界面设计,并绑定对应的事件,开发出一个实用的客户端。

二、创建一个Winform项目(Demo)

1. 使用visual studio 2019创建一个新项目

输入项目名,选择项目位置,选择.NET框架版本,点击创建

 输入项目名,选择项目位置,选择.NET框架版本,点击创建

 在项目结构可以看到Winform项目中文件包含五个部分

Properties: 设置项目属性
Properties : 设置项目属性
引用 :设置对其他项目命名空间的引用
App.config :设置数据库的配置信息
Form1.cs :设置窗体界面以及编写逻辑代码
Program.cs :设置项目运行时的主窗体


2.创建一个新窗口
创建成功进入项目会有一个主窗口(默认Form1),如果需要添加新窗口可以点击项目,添加新窗口

 

 可以看到除了新建窗口,还可以新建类,接口等文件。

3. 添加控件
左边工具栏有一个工具箱,wWindows窗体的控件可以里面添加

 添加几个常用的输入框(TextBox),按钮(Button),表(Datagirdview),勾选框(CheckBox)等。
选中控件,右键可查询属性

 修改样式,以及控件Name,Text等
添加一个datagirdview控件,点击datagirdview,点击右上角的三角符号,进行编辑列属性

 根据每一列字段的类型来进行选择,textbox,CheckBox,Button等类型可以作为列

 在datagridview中添加一列按钮,可以按如下操作步骤进行。

 将姓名,年龄,性别分别建三个输入框,点击添加,添加到列表中。

 在上面Form1[设计]页面双击添加按钮,可以对点按钮的点击事件进行编写代码,如下是添加按钮的编码,将输入框对应的值添加到datagridview中。

private void addbtn_Click(object sender, EventArgs e)
{
    int index = this.dataGridView1.Rows.Add();
    this.dataGridView1.Rows[index].Cells[1].Value =  this.textBox1.Text.Trim();
    this.dataGridView1.Rows[index].Cells[2].Value =  this.textBox2.Text.Trim();
    this.dataGridView1.Rows[index].Cells[3].Value =  this.textBox3.Text.Trim();
}

4. 运行demo
Ctrl+S保存代码,F5运行程序,查看效果

 

标签:控件,项目,C#,点击,添加,窗体,Winform
From: https://www.cnblogs.com/lab-zj/p/18405996

相关文章

  • 并发编程:ThreadLocal
    一、ThreadLocal有什么用?通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢?JDK中自带的ThreadLocal类正是为了解决这样的问题。ThreadLocal类主要解决的就是让每个线程绑定自己的值,可以将ThreadLocal类......
  • GB28181规范中broadcast和talk模式实际场景时间差别在哪里?
    好多开发者对GB28181规范里面,broadcast和talk模式区分不清,今天借此机会,针对GB28181标准中的Broadcast(广播)和Talk(对讲)是两种不同的通信模式,它们在视频监控系统中扮演着不同的角色,做个基础的扫盲,二者具有以下区别:1.功能和用途Broadcast(广播): 功能:主要用于平台侧向设备侧发送单向的通......
  • Taro 小程序父组件基于Class如何拿到子组件基于Hooks的实例对象
    如果父组件不是基于Hooks写法(类组件),而子组件是基于Hooks写法(函数组件),你依然可以通过ref访问子组件中的方法或状态。为此,你需要使用forwardRef和useImperativeHandle在子组件中自定义要暴露的内容。具体步骤在子组件中使用forwardRef将ref传递给它。在子组件中使......
  • 墙裂推荐:《Transformer自然语言处理实战:使用Hugging-Face-Transformers库构建NLP应用
    大家好,今天给大家推荐一本大模型神书——《Transformer自然语言处理实战:使用Hugging-Face-Transformers库构建NLP应用》。近年来,Transformer模型在NLP领域取得了显著成果。为了让广大开发者更好地掌握这一技术,给大家推荐一本实战教程——《Transformer自然语言处理实战:使用......
  • sicp每日一题[2.4]
    Exercise2.4Hereisanalternativeproceduralrepresentationofpairs.Forthisrepresentation,verifythat(car(consxy))yieldsxforanyobjectsxandy.(define(consxy)(lambda(m)(mxy)))(define(carz)(z(lambda(pq)p)))Whatistheco......
  • ss(socket statistics)工具的使用方法
    目录基本用法显示特定类型的信息指定显示的套接字状态输出格式化查询特定连接或地址实例注意事项ss(socketstatistics)工具是一个用于查看网络连接和socket统计数据的强大命令行工具。它比传统的netstat更快更高效,因为它不需要等待内核收集信息。ss可以提供关于套接字的状态、错......
  • Monte Carlo方法解决强化学习问题
    本文继续深入探讨蒙特卡罗(MC)方法。这些方法的特点是能够仅从经验中学习,不需要任何环境模型,这与动态规划(DP)方法形成对比。这一特性极具吸引力-因为在实际应用中,环境模型往往是未知的,或者难以精确建模转移概率。以21点游戏为例:尽管我们完全理解游戏规则,但通过DP方法解......
  • 2024ccpc线性基与校赛线性基
    异或空间线性基我终于意识到写题解有多重要了2024CCPC网络赛ProblemJ.找最小Mandy发现了两个很好玩的长度为\(n\)的序列,记为\(a,b\),她觉得一个序列的无趣度为序列内所有元素的异或和。现在她想要这两个序列尽可能有趣,具体来说,她希望最无趣的序列尽可能有趣。她觉得交......
  • 本地服务调用容器(docker)注册至nacos&dubbo服务
    1.问题背景开发人员通过本地启动服务注册到nacos,调用通过容器注册到nacos的服务失败; 2.问题解决  step1:指定网络模式为主机模式(network=host)  step2:    增加暴露端口(port=xxx)  step3:    指定dubbo服务注册到注册中心的ip+port(du......
  • 本周新上技术岗:Java/C/C++/GO语言/测试开发,月薪最高40K!
    本周新上技术岗位推荐,Java/C++/GO语言/前后端开发等高薪岗位招人啦,外企招人不加班,月薪最高40K,还不快来!!抓紧投递,早投早入职!......