首页 > 其他分享 >winforms入门简介

winforms入门简介

时间:2023-12-25 15:57:40浏览次数:47  
标签:入门 Windows 简介 System Forms winforms 窗体 Drawing WinForm

原文链接:https://upimg.baike.so.com/doc/9995803-10343583.html

winforms 脚本都是基于c#,winforms是做客户端软件,WinForm是.Net开发平台中对Windows Form的一种称谓。简单来说:WinForms 和 ASP.NET的平台支持C#和VB.NET编程语言。WinForms是做客户端软件,ASP.NET是基于网络开发的。

Visual C#是微软公司.Net FrameWork框架中的一个重要组成部分,也是微软公司极力推荐的新一代程序开发语言。.Net 为开发WinForm的应用程序提供了丰富的Class Library(类库)。这些WinFrom 类库支持RAD(快速应用程序开发),这些类库被封装在一个名称空间之中,这个名称空间就是System.Windows.Forms。在此名称空间中定义了许多类,在开发基于.Net的GUI(图形用户界面)应用程序的时候,就是通过继承和扩展这些类才使得我们的程序有着多样的用户界面。本文就试图通过一个最基本的类--Form,来具体说明一下用Visual C#开发WinForms程序的具体过程。

程序源代码:first.cs

using System ;

//导入 WinForms 名称空间

using System.Windows.Forms ;

//Class Form1 继承并扩展 System.Windows.Forms名称空间中class Form

public class Form1 : Form

{

public static void Main()

{

//运行程序

Application.Run(new Form1());

}

}

小结:

1).首选要使用"using System.Windows.Forms"语句导入WinForm的名称空间

2).声明Form1 类,此类是继承、扩展了using System.Windows.Forms 名称空间中的Form 类

3)."Application"类,此类也被定义在using System.Windows.Forms名称空间中,由于此类封闭的,所有我们不能继承。"Application"类主要作用是运行和退出Windows的应用程序,还可以处理Windows的消息。调用"Application"类的"Run"方法表明将要开始运行应用程序。

三.做一个透明的WinForms

当我第一次在视窗2000中看到透明的窗体,就想做出这样一个窗体应该是非常难的。肯定要调用很多的API函数。当接触了.Net以后,才发现用VisualC#做出一个透明的窗体是多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的透明窗体到底是什么样。

透明窗体的源代码:second.cs

using System ;

using System.Windows.Forms ;

using System.Drawing ;

public class Form2 : Form

{

public static void Main( )

{

Application.Run( new Form2( ) );

}

public Form2( )

{

this.Location = new System.Drawing.Point( 100 , 100 ) ;

this.Cursor = System.Windows.Forms.Cursors.Hand;

// 定义在窗体上,光标显示为手形

this.Text = "透明的WinForm窗体!";

// 定义窗体的标题名称

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

// 定义窗体的开始显示位置是屏幕的中间

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;

// 窗体的边界是Fixed3D类型

this.ForeColor = System.Drawing.SystemColors.Desktop;

//以桌面的前景色作为窗体的前景色

this.Font = new System.Drawing.Font ( "宋体", 9 ) ;

// 定义字体类型,大小

this.BackColor = System.Drawing.Color.Blue;

// 定义背景色为蓝色

this.ClientSize = new System.Drawing.Size( 440 , 170 ) ;

// 设置窗体的大小

// Opacity属性设立窗体的透明程度,只对于视窗2000有效

this.Opacity = 0.60 ;

}

}

小结:

以上的代码其实和第一个例子的代码有很多相似,只是在Form2 Class中多定义了一些属性。

1)."this"关键字,我想大家都注意到了这个关键字,那么到底该如何理解他。举例如下:当我在自我介绍的时候(其实就是在定义我的属性),我会说"我的名字叫xx","我的年龄是xx","我的邮箱是xx"……你可能注意到"我的"这二个字,他就是指我本人--王天。同样的道理在程序设计中,"this"关键字就是指向一个对象的实例。所有在上面代码中"this.Font"、"this.Text"就是在设定当前或者正在运行的Form2实例的属性。

2).再看看上面的代码,在程序中又导入了一名称空间--System.Drawing。通过这个名称空间定义的类,就可以更好的设计对象,处理颜色和大小。

3).下面通过下表来具体说明一下在上面程序中设立的属性的具体含义。

属性 描述

Location 初始化WinForm的位置,就是当应用程序运行的时候,显示WinFrom的固定位置

Cursor 当光标在WinForm上面的时候显示的光标状态

Text 设定WinForm的标题

StartPosition 这个属性有点类似于"Location"属性,"Location"属性定义的是WinForm的绝对位置,而本属性定义的是WinForm的相对属性。本属性的值定义为"CenterScreen"、"Manual"、"WindoowsDefaultLocation"、"WindowsDefaultBounds"、"CenterParent"

FormBorderStyle 定义窗体的边界的样式。通常设定为,"FixedSingle"、"Sizable"、"FixedDialog"、"FixedToolWindow"、"SizableToolWindow"

ForeColor 定义窗体的前景色彩

this.AutoScaleBaseSize = new System.Drawing.Size( 8 , 16 ) ;

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;

// 设定窗体的边界类型

this.ForeColor = System.Drawing.SystemColors.Desktop;

this.Font = new System.Drawing.Font ("宋体", 10 , System.Drawing.FontStyle.Bold ) ;

// 设定字体、大小就字体的式样

this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;

this.BackColor = System.Drawing.Color.Blue;

// 设定背景色

this.ClientSize = new System.Drawing.Size( 250 , 250 ) ;

//把标签加到窗体中

this.Controls.Add ( this.label1 ) ;

}

}四.做一个带一个组件的WinForm

本例子主要是介绍如何在WinForm中加入一个组件。如果你想在窗体中加入任何组件,首先,你必须要初始化这个组件(见下面程序中初始化Label一样)。并且使用"Controls.Add"方法加入到窗体中,以下是程序运行的源代码。

源程序:three.cs

using System ;

using System.Windows.Forms ;

using System.Drawing ;

public class Form3 : Form

{

//定义一个标签

private Label label1 ;

public static void Main( )

{

Application.Run( new Form3( ) ) ;

}

// 构造

public Form3( )

{

// 建立标签并且初始化

this.label1 = new System.Windows.Forms.Label( ) ;

//先继承一个Label 类

label1.Location = new System.Drawing.Point( 24 , 16 ) ;

//设定 Label的显示位置

label1.Text = "这是一个WinForm中的标签";

label1.Size = new System.Drawing.Size ( 200, 50 );

//设定标签的大小

label1.TabIndex = 0 ;

label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;

// 设定标签的对齐方式

this.Text = "在WinForm中加入一个标签!";

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;五.总结

以上是对用Visual C#开发WinForm应用程序进行了着重的介绍,由于在.Net FrameWork Sdk中的System.Windows.Froms名称空间中封装了许多关于界面设计的Class(类)。本文只能通过介绍一个基本的类--Form来了解一下Visual C#的强大功能和.Net Class Library(类库)丰富的开发资源。通过本文也可以看出,要想充分利用Visual C#的强大功能,就必须了解并掌握.Net Class Library。也只有掌握了.Net Class Library,你所开发的.Net程序功能才会强大,生命力才更强。

Font 定义放在WinForm上的字体的类型和大小

BackColor 定义窗体的背景色彩

ClientSize 定义WinForm的大小

Opacity 这个属性是定义WinForm的透明程度,并且这个属性只能用在视窗2000。属性的区值0-1,代表从完全透明到不透明。

标签:入门,Windows,简介,System,Forms,winforms,窗体,Drawing,WinForm
From: https://www.cnblogs.com/Dongmy/p/17926247.html

相关文章

  • # 1. TypeScript 简介
    1.TypeScript简介烦教程地址教程资源:https://ts.xcatliu.com/introduction/what-is-typescript.html#link-1中文官网:https://www.typescriptlang.org/TypeScript特点JS的超集包含JS的所有元素能够运行JS代码支持ES语法是一种开源、跨平台的编程语言编译器......
  • C++U3-第06课-算法入门
    学习目标求和符号  连乘符号  指数     对数    算法概念与复杂度计算           vector向量容器      遍历 【思路分析】1、定义vector容器和变量n2、输入n3、输入n个......
  • 华为交换机最简单的入门配置
    一、配置vlan先来温习下华为交换机的基础配置命令。对于一个企业网络,通常需要根据部分划分不同的VLAN,用于隔离广播域和网络隔离。首先配置交换机全局的VLAN,根据端口所连接的终端,给端口分配不同的VLAN,端口类型配置成access模式;交换机和交换机之间的互联端口配置成trunk模式,并且允许......
  • FineReport 11.0参数查询入门示例操作记录
    参数的主要作用是实现用户与数据的实时交互,即进行数据的过滤。我们可以在很多情况下使用参数,比如在单元格中引用参数来实现动态标题、根据参数值的不同显示不同值等等。如下图所示:links:https://help.fanruan.com/finereport/doc-view-166.html?source=0&from=base......
  • Kernel Memory 入门系列:生成并获取文档摘要
    KernelMemory入门系列:生成并获取文档摘要前面在RAG和文档预处理的流程中,我们得到一个解决方案,可以让用户直接获取最终的问题答案。但是实际的业务场景中,仍然存在一些基础的场景,不需要我们获取文档的所有详情的,而只是了解的文档的大概信息,得到文章整体的摘要或者总结,此时仍然可......
  • kettle从入门到精通 第二十六课 再谈 kettle Transformation executor
     1、前面文章有学习过Transformationexecutor ,但后来测试kettle性能的时候遇到了很大的问题,此步骤的处理性能太慢,导致内存溢出等问题。所以再次一起学习下此步骤的用法。 2、 如下图中rds-sametable-同步逻辑处理使用的是Transformationexecutor步骤,最后Speed列表示处理速......
  • Cesium基础入门教程
    Cesium中的坐标系以及坐标转换Cesium中常用的坐标Cesium中坐标转换经纬度坐标转换成世界坐标两种方式将经纬度转换成世界坐标1.直接转换varcartesian3=Cesium.Cartesian3.fromDegrees(lng,lat,height);2.借助ellipsoid对象,先转换成弧度再进行转换varcartograp......
  • MySQL导入导出 —— mysqldump 简介及常见用法
    一、导出导出用户需要有导出对象的权限,例如导出表要有select权限、导出视图要有showview权限、导出触发器要有trigger权限、需要锁表时要有locktables权限等。如果dump文件中包含了GTID信息,则无法导入到未启用GTID的数据库(低于5.6.9版本的数据库不支持GTID,因此也无法导入到这......
  • 1.Moose简介及安装
    Moose驼鹿1.简介MOOSE是美国爱达荷国家实验室主导开发的一个开源多物理面向对象有限元模拟工具。它提供了高级接口,让用户能够更为简易地使用成熟的非线性求解器。其特性包括但不限于:全耦合,全隐式多物理求解器多维度物理模拟自动并行化模块式开发以提高代码复用率内置适应......
  • 深度学习从入门到不想放弃-4
    最近再玩SuperMarioBros Wonder,真的好玩,我给9分,强烈推荐   今天继续,其实断更以后我都忘记我上次讲到哪了,现回去查的前一篇文章再讲什么...    今天的内容是导数,大家都学过,我就简单给过一过了,不细讲了    先说微积分的由来:       上面这个图,是......