Sitemap

您现的位置:色情网址来源免费不卡  >  技能频道首页  >  技能百科  >  C#2017编程根底及雷赛运动掌握产品运用(上)

C#2017编程根底及雷赛运动掌握产品运用(上)

2019年07月09日 11:04:04 色情网址来源免费不卡

盘算机编程是一个顺序猿的看家身手,特别是工控范畴,念要通过运动掌握产品完成板滞配备的运动,不可缺氨赡是精良的编程方法。现今大宗的编扯蒿言品种中,工程师应当怎样去挑选适宜的言语状况呢? 本日小编带大师了解此中C#的基本操作方法。

 C#2017编程根底

为什么要用C#

先看一下20189Tiobe编扯蒿言排行榜。

 C#2017编程根底

●Java1995年由SUN公司正式推出,免费!具有出色的通用性、高效性、平台移植性和平安性,广泛运用于私人PC、数据中心、游戏掌握台、科学超级盘算机、挪动电话和互联网。(2010Oracle公司收购了SUN)

●Python/paθn/是一种标明型、面向对象、动态数据类型的高级顺序计划言语。自从1991Python言语降生至今,它渐渐被广泛运用于处理体系办理义务和Web编程。免费、开源。

●PHPHypertext Preprocessor的缩写,中文名:超文本预处理器)是一种通用开源脚本言语。语法接纳了C言语、JavaPerl的特性,初学门槛较低,易于进修,运用广泛,主要适用于Web开辟范畴。

数据外明:JavaC言语是主流。

C#的根源

C#读作C Sharp。符号#2种标明:

#五线谱中读作Sharp,是升半个音的意义。这里用#有对C晋升之意。

C→C ++ → C ++++,为了便当写成了C #

1996年原Broland公司的首席研发计划师安德斯·海尔斯伯格(Anders Hejlsberg)到场微软,开端开辟Visual J++Visual J++很速由1.1版本升级到6.0版。VJ++编译出来的虚拟板滞码的施行服从不光比任何Java开辟东西速,某些方面以致比原生的Windows开辟东西,如:DelphiVB、以致是VC++服从还高。

SUN公司认为Visual J++ 违反了Java开辟平台的中立性,对微软提出了诉讼。2000626日微软奥兰众举办的职业开辟职员技能大会(PDC 2000上,推出新的言语C#,它是Visual J++根底上开辟的软件,同时中止Visual J++的出售。以是,C#言语深受JavaCC++的影响。

20006月微软公司发布一种新的编扯蒿言C# 1.0

20035月,微软推出了Visual Studio .NET 2003,同时也发布了C#的改良版本C# 1.1

微软2004年的6缘垒发布了Visual Studio2005的第一个Beta版,同屎瞎示了C#2.0

20059缘垒的PDC大会上微软推出C#3.0的技能预览版。

20104月推出的Visual Studio2010C#4.0,支撑开辟面向Windows7的运用顺序。

20129月微软发布了Visual Studio 2012C#5.0,可支撑Windows8

201738日微软正式推出Visual Studio2017,此中包罗C# 7.0 Visual Basic 15,可支撑Windows10Visual Studio 2017 包罗可免费试用的专业版和企业版,以及面向学生、开源和私人开辟者的免费社区版。

C#有哪些优点?

就职于微软的 C# 部分的Mads TorgersenGOTO Copenhagen 2016 大会讲演上说:C#是您的首选编扯蒿言!因为C#可以很好地WindowsMacLinuxAndroidiOS上运转。C#是编扯蒿言创械澜面的指导者,是原生跨平台挪动运用顺序的最佳挑选,而且另有许众的优点超乎您的念象。

 

C#是一种强大的、面向对象的顺序开谈话语,是特别用于.Net的编扯蒿言,用C#编程的代码老是.Net Framework中运转。

C#归纳了VB简单的可视化操作和C++的高运转服从,以其强大的操作才能、斯文的语法立场、立异的言语特征和便捷的面向组件编程的支撑成为.NET平台的首选言语。

C#承袭CC++强大功用的同时去掉了少许它们的繁杂特征(比如没有指针、宏以及不容许众重承袭等)。

C#言语和Java很相似。学会C#后,进修Java很容易。

笔者运用体验:

◆ C#的功用强:类库庞大、众线程、速率速;

◆ 界面计划简单、都雅,和VB相似;

◆ 稳定性比VB6.0强(调试运动掌握卡时没有自动退出现象);

◆ 智能化程度高(写代码时样式自动对齐,有智能提示;调试顺序时便当,能给出有用的新闻等);

◆ C#比学VC容易(难点是要顺应少许新看法,如:类)。

◆ C#7C#4有分明进步。

1)纠错才能进一步增强;语法有错时,也能自动对齐代码。

2)准时器Timer精度进步到10ms

3)免费的社区版也可以生成运用顺序。

C#安装方法

下载离线安装软件包。安装进程如下:

1. 运转vs_setup.exe

2. 假如提示需求安装 .NetFramework4.6,则运转文献夹NetFramework4.6”中的

NDP462-KB3151800-x86-x64-AllOS-ENU.exe即可。

3. .Net桌面开辟。即安装C#VB

4.安装完毕后,要连接网络,用微软的账号登录一下,就OK啦!

假如没有微软的账号,用一个邮箱喝英册一个也很容易。

5. 运转C#后,假如有报错:目今页面的脚本爆发过失

依据图片上提示的文献道径,找到这些文献(有可以图片中会弹出众个文献),直接删除文献,并不影响运用,也不会再报错。

第一个C#顺序

输入3个数字(字母也行),点击开端键,3个数按从小到大序次从头排列,并输出结果。界面和运转结果如图1.2所示。

 C#2017编程根底

C#的编辑界面如图1.3、图1.4所示。除了窗体及代码外,C#另有一个主顺序Program.cs、一个体系自动生成的窗体计划顺序Form1.Designer.cs

 C#2017编程根底

C#2017编程根底

C#的顺序构造如例程1代码所示。

例程1

using System;   // 引入System等命名空间

using System.Collections.Generic;  // 相当于VC的头文献

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace FirstOne  //  创立名为FirstOne的命名空间

{    //  命名空间中有众个文献

// Program.cs 为主顺序文献

staticclassProgram   //  创立名为Program的静态类

{

///<summary>

///运用顺序的主入口点。

///</summary>

[STAThread]    //  指示运用顺序的COM线程方式是单线程单位(STA)。

staticvoid Main()     //  创立名为Main()的静态方法

{

Application.EnableVisualStyles();  //  启用可视化样式

Application.SetCompatibleTextRenderingDefault(false);   //  修立呈现样式

Application.Run(newForm1());  //  运转Form1窗体

}

}

// Form1.cs 为窗体事情的代码

publicpartialclassForm1 : Form   //  创立名为Form1的大众类

{

public Form1()

{

InitializeComponent();

}

privatevoid button1_Click(object sender, EventArgs e)   //  开端按键被点击

{

string[] MyData = new string [3]; // 血色所示代码为编程者写的,其他均为自动生成

MyData[0] = textBox1.Text;  // 输入数据

MyData[1] = textBox2.Text;

MyData[2] = textBox3.Text;

Array.Sort(MyData);// 排序

textBox1.Text = MyData[0];  // 输出结果

textBox2.Text = MyData[1];

textBox3.Text = MyData[2];

}

Form1.Designer.cs 为窗体计划代码,由Visual Studio自动生成,不必众管它。

C#代码的语法、样式

1. 运用using要害字把.Net Framework类库相对应的命名空间引入运用顺序项目中。

2. 必需定义类

C#顺序的源代码必需放类中,一个顺序起码包罗一个自定义类,用要害字class声明。

3. 类的代码主要由方法构成

C#顺序中必需包罗Main方法。顺序从Main方法的第1条语句开端运转,直到施行到其着末一条语句为止。类中可以包罗众个方法。方法名后必定有一对园括号。

4. C#语句以分号完毕

一行代码可以写几条语句;一条语句也可以长达众行。

5. C#代码中区分大小写

6. C#的顺序解释

// 单行解释

/*

众行解释

*/

7. 命名规矩:

定义空间、类、方法、控件、变量等都需求命名。

名字可以由英文、数字或下划线构成,要使其原理、目标明晰。不可用拼音。(下划线已不倡议用)

微软C#中主要运用的是帕斯卡命名法和骆驼命名法。

帕斯卡命名法(Pascal):每个单词的首字母大写,比如ProductType

骆驼命名法(Camel):首个单词的首字母小写,其余单词的首字母大写,比如productType

命名空间、类、窗体、方法、事情、属性的命名:

一般用大写字母开端,后面的单词的第一个字母也要大写。(帕斯卡命名法)

例:FirstOneScreenClassMainFormSetCopyNumberColorChangedBackColor

控件的命名:第一个字母小写,其余单词首字母大写。(骆驼命名法)

例:textBox2exitButtonstreetNumberLabel

变量、方法的参数命名:

用有原理的单词命名即可。第一个字母小写,其余单词首字母大写。(骆驼命名法)

例:balanceindexnextMonthExpenditurecustomerName

不要运用简称和偶尔义的名称,如:ab1等。但ijxy等商定俗成的变量可用。

常数的命名:

通通单词大写,众个单词之间用 "_" 离隔。如:const double TAX_RATE = 0.23;

C#代码的其他标准

代码的缩进。要用Tab,而不要用space.

◆ 通通的成员变量声明类的顶端,用一个换行把它和方法分开。

◆ 生成和构修一个长的字符串时,必定要运用StringBuilder,而不必string.

◆ 永久运用"{ }"包罗if下的语句,即使只要一条语句。

◆ 袄鬣似的实质放一同,比如数据成员、属性、方法、事情等。

C#的常数、变量及定义方法

1.常用的数据类型及取值范围(如外1.1所示)

因为现的盘算机速率极速。倡议:整数用long类型、浮点数用double类型。

bool类型是条件语句必需运用的类型。字符用char类型,字符串用string类型。另有时间类型、日期类型、摆列类型、构造类型、对象类型等数据类型。不常用,不先容。

 C#2017编程根底

2. 常数

1)布尔常量:truefalse

2)整数常量:既可以是10进制也可以是16进制。

16进制数前加符号:0x。如:0x200x1F

常整数后加符号L外示long型,常整数后加符号U外示无符号型。

例:32       // 默认为int

32L            // long

32U           // uint

32UL         // ulong

3)浮点常量

浮点数后加符号F外示float型,如:3.14F

浮点数后加符号D外示double型,如:3.14D

浮点数后加符号M外示decimal型。如:3.14M

4)字符串常量

A.常规字符串:由双引号括起的一串字符,可以包罗转义字符。

 C#2017编程根底

:“Hello,World!\n”     // 字符Hello,World!后接换行符

“C:\\windows\\Microsoft” // 字符串为:C:\windows\Microsoft

B.逐字字符串:常规字符串前加符号@,字符串中的字符均外示本意。

:@“He said “Hello” to me.”  // 字符串为:He said “Hello” to me.

5)符号常量

定义样式:[常数润饰符]  const  类型常量名 = 初值

常用润饰符有:publicprivate

:private  const  double  PI = 3.1415926

3.  变量的定义(和VB差别大)

声明变量的样式:[变量润饰符] 类型变量名[ = 初值 ] [ , … ];

常用润饰符有:publicprivatestatic

(静态变量函数调用完毕后仍保管变量值,只可类中定义,不行方法中定义)

:  long  distance

double  speed = 21.5acc = 90.0

string  productName

4. 数组

1)一维数组的定义(和VB差别很大)

方法1:类型   [ ] 变量名;             // 数组声明

变量名 = new 类型 [ 数组长度 ] { val1,val2, … }  // 创立数组实例

方法2:数组声明和创立数组实例同时举行

方法3:数组声明和创立数组实例同时举行,并完毕初始化,可省略new和类型

: int [ ] number;

number = new int [10];    // 数组number10个元素

float [ ] score = new float[ 100 ];   // 数组score100个元素

long [ ] queue = {0,1,2,3,4,5};   // 数组queue6个元素

2)处理数组的常用方法:

aEnumerable类的方法:

数组名.Count()// 给出数组含元素的个数

数组名.Max()   // 给出数组中最大的元素

数组名.Min();      // 给出数组中最小的元素

数组名.Sum();    // 盘算数组以是元素的和

数组名.Average(); // 盘算数组以是元素的平均数

bArray Array Array类的方法:

Array.Clear(数组名, 开端位, 长度);   // 清零

Array.Sort(数组名);  // 排序

Array.Reverse(数组名);  // 反转数组中元素的序次

常用的运算符和外达式

1.算术运算符:

加:+ ,减:- ,乘:* ,除:/ ,取模:% ,递增:++ ,递减:--

2.联系运算符:

大于:>,大于等于:>=,小于:<,小于等于<=:,等于==:,不等于:!=

3.逻辑运算符:与:&,或:| ,非:! ,异或:^

4.位运算符:

与:&,或:| ,非:~ ,异或:^,右移:>>,左移:<<

VB的差别:%Mod),无乘方符号(^),++--(无)

===), !=<>),&And),|Or),!(Not

5.运算符及操作符从高到低的优先级序次,睹外1.3

 C#2017编程根底

6.常用数学函数的调用:(System命名空间中的Math类)

Math.Abs(x);     // x 的绝对值

Math.Pow(x,y);   // x y 次幂

Math.Sqrt(x);     // x 的平方根

Log10(x);   // x 10为底的对数

Math.Sin(x);       // x 的正弦

Math. Cos(x);    // x 的余弦

Math.Tan(x);     // x 的正切

Math.Asin(x);    // x 的反正弦

Math. Acos(x);  // x 的反余弦

Math.Atan(x);   // x 的反正切

Math.Floor(x);   // 返回小于或等于x的最大整数

Math.Round(x);   // 四舍五入取整

Math.Sign(x);     // x<0,返回-1x=0,返回0x>0,返回1

Math.Max(x,y);   // 返回x,y中的最大值

Math.Min(x,y);   // 返回x,y中的最小值

7.数据类型的转换的方法:

a.隐式转换:

C#可以本人举行少许数据类型的转换。字节占用小的类型可以自动转为字节占用众的类型。如:

int 可自动转为 longfloatdouble

float可自动转为double

b.显式转换:

样式:(类型阐明符)(待转换的数据)

例:b = (float) a;

z = (int) (x+y);

c.运用Convert类供应的方法(System命名空间中的Convert类)

常用的有:Convert.ToString(x);    // x 可以是intlongfloatdouble

Convert.ToDouble(x);   // x 可以是stringintlongfloat

Convert.ToInt32(x);    // 即转换为 int

Convert.ToInt64(x);    //即转换为 long

a2个简单的转换函数:

变量.ToString();   //将恣意一品种型的变量转为字符串

int.Parse(字符串);   //将字符串数字转为int类数值

float.Parse(字符串);   //将字符串数字转为float类数值

double.Parse(字符串);   //将字符串数字转为double类数值

8.常用字符串处理函数:(String )

字符串1.IndexOf(字符串2 )    // 字符串1中查找第一个字符串2的位置

字符串.Substring( a, b )       //  获取葱≈符串的第a个字符开端,共b个字符

字符串.Substring( a )         //  获取葱≈符串第a个字符开端的通通字符

字符串.Remove(a, b )        //  葱≈符串的第a个字符开端,删除b个字符

字符串1=字符串2+字符串3   //  字符串的加法

C#编扯蒿言与控件的运用

1.if  else 语句(流程睹图2.1

语法样式:     if (条件外达式)

{

语句块1;

}

else

{

语句块2;

}

 C#2017编程根底

2.for 语句(流程睹图2.2

语法样式:     for(初始化外达式;条件外达式;迭代外达式)

{

轮回体;

}

 C#2017编程根底

3.while 语句(流程睹图2.3

语法样式:     while(条件外达式)

{

轮回体;

}

4.跳转语句

break语句:用于退出forwhileswitch等轮回语句

continue语句:forwhile等轮回语句中,开端新的一次轮回

return语句:return呈现方法中。施行return后,顺序回到方法的调用途。

return可带参数。

例程2:百钱百鸡题目

鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

即:假定公鸡每只5元,母鸡每只3元,小鸡31元。现有100元,要买100只鸡,问公鸡、母鸡和小鸡各买几只?

剖析:设买公鸡的数目为cock,买母鸡的数目为hen,买小鸡的数目为chick

分明,1≤cock≤191≤hen≤31chick100cockhen;

三种鸡的总价钱为

sumcock5+hen3+ chick/3

用搜寻法可很速找到谜底。即用两重轮回语句掌握买公鸡和母鸡的数目119131中依次改造;

再用条件语句判别哪种组合使买鸡的总价钱正好等于100元。

盘算流程睹图2.4

 C#2017编程根底

翻开VisualStudio2017

挑选文献”→“新修”→“项目菜单命令,并弹出的新修项目对话框的左边一栏中挑选“VisualC#”→“Windows桌面,并中心栏中选“Windows窗体运用,然后下面填写项目名称、挑选项目保管位置,着末点击确定按钮。如图2.5所示。

 C#2017编程根底

计划界面如图2.6所示。界面中有一个按钮button1,一个增强文本框richTextBox1。将Form1的属性Text改为百钱百鸡题目button1的属性Text改为求解

C#2017编程根底

双击按钮button1,自动进入代码编辑窗体,如图2.7所示。

C#2017编程根底 

button1_Click函数里编写代码。点击菜单中的迟缓键启动,运转顺序。点击求解按钮,得出百钱百鸡的结果。如图2.8所示。点击右上角的叉,可退出顺序。

 C#2017编程根底

C#的类、方法

1.类:

类构成了面向对象编程的中心。

类实行上便是数据和处理数据代码的封装体,即:类封装了数据成员和函数成员。

此中数据成员有:常数、字段(即:变量)、域等;函数成员有:方法、属性、事情等。

类的实例则称为对象。

类的声明:

[类润饰符]  class  类名 [ :类基 ]

{

类成员

}

主要的类润饰符有:

public      该类为公然的,拜访不受限制

protected:该类只可是本身或其派生的类拜访

internal    该类只可是目今运用顺序中拜访

private     该类只可是本身拜访

类基:该类的直接基类和由该类完成的接口。

2.类通过实例化才干取得精细的对象。

实例化类的样式:

类名对象名 = new 类名( [参数] );

3.方法:

方法:便是按照必定样式构造的一段代码。即:VB中的进程、函数。

a. 方法的声明:

[方法润饰符返回类型方法名([ 形参外 ]

{

方法体

}

主要的方法润饰符有:

public:该方法为公然的,可以任何地方拜访

protected:该方法可以类中或其派生的类中被拜访

internal:该方法可以被同处一处的工程中的文献拜访

private:该方法只可类中被拜访

static:静态方法从类一创立就开端保管

b.方法中的参数转达

传值参数无需分外的润饰符。

传址参数需求润饰符ref(参数定义和参数调用时都要加上)

传值参数(值参数)方法调用进程中假如改动了参数的值,那么传入方法的参数方法调用完毕以后并不于是而改动,而是保管本来传入时的值。

传址参数(援用参数)恰恰相反,假如方法调用过车滥变了参数的值,那么传入方法的参数调用完毕以后也随之改动。

例程3:对3个数排序、盘算3次方。

(类、方法、参数的转达)

窗体中添加控件:2个按钮、

3个文本框、3个标签,如图2.9所示

C#2017编程根底

button1的名称改为start,将button2

的名称改为power

顺序代码如下:

using System;

using System.Collections.Generic;2.9  类、方法、参数的转达

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace ExampleClass

{

publicpartialclassForm1 : Form

{

public Form1()

{

InitializeComponent();

}

privatevoid start_Click(object sender, EventArgs e)

{

double a, b, c;                 

a = Convert.ToDouble(textBox1.Text);

b = Convert.ToDouble(textBox2.Text);

c = Convert.ToDouble(textBox3.Text);

MyClass m = newMyClass();  // 实例化类MyClassm

m.Sort(ref a, ref b, ref c);         // 调用类m中的Sort方法,代入参数a,b,c  

 

textBox1.Text = Convert.ToString(a);

textBox2.Text = Convert.ToString(b);

textBox3.Text = Convert.ToString(c);

}

privatevoidpower_Click(objectsender,EventArgs e)

{

double a, c;

a = Convert.ToDouble(textBox1.Text);

c = power3(a);       // 调用方法,代入参数a

textBox3.Text = Convert.ToString(c);

}

privatedouble power3(double x)  // 盘算x3次方

{

double z;

z = x * x * x;    // x是传入的参数

return z;         // z被回传

}

}

publicclassMyClass

{

publicvoid Sort(refdouble x, refdouble y, refdouble z)

{      // 该方法其他类中可以调用

if (x > y) Swap(ref x, ref y);    // a,b,c 三参数从小到大排序

if (x > z) Swap(ref x, ref z);

if (y > z) Swap(ref y, ref z);

}

privatevoid Swap(refdouble m, refdouble n)

{            // 该方法其他类中不可调用

double temp;    // m,n两参数对调

temp = m;

m = n;

n = temp;

}

控件及属性

前面曾经运用过的控件有:文本框、增强文本框、按钮、标签。

1.  准时器、复选框控件

例程4

计划一个窗体如图2.10所示。

从东西箱中的组件中选“Timer”添加窗体中。再添加2个按钮、2个复选框,此中checkBox2的外观改为“button”

 C#2017编程根底

准时器的属性“Interval”(时间间隔)设为500,其单位为毫秒。双击准时器图标,进入timer1_Tick函数,编写代码,使复选框的选中形态每500毫秒改造一次。

button1button2区分控订定时器的开关。顺序代码如下:

privatevoid button1_Click(object sender, EventArgs e)

{

timer1.Start(); // 翻开准时器

button1.Visible = false; // 按钮不可睹

}

privatevoid button2_Click(object sender, EventArgs e)

{

timer1.Stop(); // 关合准时器

button1.Visible = true; // 按钮可睹

}

privatevoid timer1_Tick(object sender, EventArgs e)

{

if (checkBox1.Checked == true)

checkBox1.Checked = false;

else

checkBox1.Checked = true;

if (checkBox1.Checked == true)

checkBox2.Checked = false;

else

checkBox2.Checked = true;

}

2. 延时与界面革新

例程5

用线程息眠指令Thread.Sleep(…)可完成顺序延时;当心,要顺序最前面添加“using System.Threading;”

一个子顺序中改正控件的Text属性后,必需运用Refresh()指令革新界面,否则,界面直到退出子顺序后才会改动。

界面如图2.11所示,代码如下:

 C#2017编程根底

using System;

using System.Threading; // 调用众线程类库

using System.Windows.Forms;

namespace sleep

{

publicpartialclassForm1 : Form

{

public Form1()

{

InitializeComponent();

}

privatevoid button1_Click(object sender, EventArgs e)

int i;

for (i = 10; i > 0; i--)

{

button1.Text = "请等候..." + i.ToString()+"";

this.Refresh();  // 革新界面

Thread.Sleep(1000);        // 线程息眠1

}

button1.Text = "完毕!";

this.Refresh();

Thread.Sleep(1000);

button1.Text = "延时10";

}

常睹题目

1. 仅删除一个进程的代码,会堕落。假如删除了以下代码:

privatevoid Form1_Load(object sender, EventArgs e)

{

……

}

窗体计划器中的一条对应的代码,也要删除才行。

privatevoid InitializeComponent()

{……

this.Load+=newSystem.EventHandler (this.Form1_Load);  // 这条代码也要删除

……

2. 将事情触发的代码直接拷贝Form.cs中不可。

如:只是拷贝以下这段代码,并不会textBox1中显示Hello!也不报错。

privatevoidForm1_Load(objectsender,EventArgs e)

{

textBox1.Text = "Hello!";

}

只要Form1上双击Load事情,自动生成Form1_Load进程,再将textBox1.Text = "Hello!";拷入,才可以!

3. 部分变量没有赋初值,会报错。

比如:

{

int m, n ;

if (m == 0)←报错

或者:

m = n + 1;←报错

报错提示:运用了未赋值的部分变量。

int m, n=0 ;

m = n + 1;←如许ok

本领:

1.众用迟缓键:

Ctrl+K+D:调解通通代码的样式(编辑高级修立文档的样式)

F1:查看帮帮:将光标移至相关代码处,按键F1,可得相应的帮帮实质。

F7:进入代码编辑窗口;

Shift+F7:进入窗体计划窗口;

F12:光标方法名上,按F12跳方法定义代码处。

Ctrl+Home:光标跳至文献头;

Ctrl+End:光标跳至文献尾;

Ctrl+L:删除目今行;

Ctrl+CCtrl+VCtrl+XCtrl+Z:和Office相同。大师都会用的!

2. 充沛应用网络上的例程和帮帮文献

C#类库资源丰厚,要充沛应用。先有本人的念法,再到网上搜寻例程;着末细心阅读C#的帮帮文献。

不时进修、实行,就能成为C#妙手!

C#绘图方法与鼠标事情

.NET Framework 供应了图形配备接口GDIGraphic Device Interface)。

C#供应的Graphics类,供应了将对象绘制到显示配备的方法。

绘图一般pictureBox中举行。主要方法如下:

1.窗体上新修一个pictureBox控件,背风光设为白色;

2.创立Graphics对象

Graphics g = pictureBox1.CreateGraphics(); // 相当于C++中获取句柄

3.定义坐标及单位:

默认坐标原点是绘图区的左上角。Y轴坐标偏向朝下。如图3.1所示。

一般以屏幕的像素为坐标的单位。

g.PageUnit = GraphicsUnit.Pixel;  // 以像素为单位

g.PageScale = 0.5f;            // 像素与坐标单位的比例,即1个坐标单位为0.5个像素。

坐标可以平移,函数如下:

g.TranslateTransform(200,200);   // X轴下移200Y轴右移200,偏向仍朝下

绘图时,y坐标的数据乘-1,则取得平常图形。

 C#2017编程根底

4.定义画笔

方法1

Pen myPen = newPen( Color.Red );  // 实例化PenmyPen,血色,宽度为1

方法2

Pen myPen = newPen( Color.Red, 2.0f );   // 宽度为2

5.画直线:

方法1:绘制一条由坐标对指定的两头点的直线,即点(x1,y1)(x2,y2)的直线。

DrawLine(Pen, intx1, int y1, int x2, int y2);

DrawLine(Pen, floatx1, float y1, floatx2, float y2);

方法2:绘制一条由两个PointF构造定义的直线。

PointF point1= new PointF(100.0F,100.0F);

PointF point2= new PointF(500.0F,300.0F);

DrawLine(Pen, point1, Point2 );

构造:由一系列相关参数构造成的一个简单实体。运用方法和相似。也可以本人定义。

常用的构造成员有:类型、常数、变量等。

6.画椭园:

DrawEllipse(Pen,x,y,h,w);

// 椭圆的大小由一矩形定义,该矩形的左上角坐标(x,y)、高度h、宽度w

//当高度为1、宽度为1时,即画1个点。

7.画弧线:运用DrawLinesDrawCurve函数

例程6:画弧线(结果睹图3.2

 C#2017编程根底

int[] x = { 30, 60, 90, 120, 150, 180, 210, 240, 270, 300 };

int[] y = { 60, 120, 30, 240, 300, 240, 30, 120, 60, 30 };

Graphics g = pictureBox1.CreateGraphics();   //创立Graphics对象

g.TranslateTransform(0, 400); 

Pen RedPen = newPen(Color.Red);   //创立血色的画笔

Pen GreenPen = newPen(Color.Green); //创立绿色的画笔

Point[] points = newPoint[10];  //创立坐标点的构造

for (int i = 0; i < points.Length; i++)

{

points[i] = newPoint(x[i], -1 * y[i]);    //修立各个点的坐标值

}

g.DrawCurve(RedPen, points);       //绘制颠末一组指定的坐标点的样条弧线。

g.DrawLines(GreenPen, points);     //绘制折线

for (int i = 0; i < 10; i++)

{

g.DrawEllipse(newPen(Color.Blue,3),x[i],-1*y[i],1,1);    //画各个点

}

DrawLinesDrawCurve画弧线比用DrawLine画弧线速!

8.画矩形:

Rectangle rect = newRectangle(x1, y1, width, height);  //定义矩形:左上角坐标、宽、高

g.DrawRectangle(Pen, rect);   // 画矩形

9.画面清零:

g.Clear(Color.White);

鼠标事情

例程7:用鼠标pictureBox中画框

窗体计划界面选中pictureBox1,点击属性框上的事情图标(如图3.3a所示),双击MouseDown,自动生成鼠标键按下事情的方法名:

privatevoid pictureBox1_MouseDown(object sender, MouseEventArgs e)

然后编写相关代码即可。

修立鼠标键抬起、鼠标挪动事情的方法进程也相同。

用鼠标pictureBox中画框的结果睹图3.3b,代码如下所示。

 C#2017编程根底

int x1, y1, x2, y2, mouseDown = 0;

int x0 = 0, y0 = 0, height = 0, width = 0;

privatevoid pictureBox1_MouseDown(object sender, MouseEventArgs e)

{

if (e.Button == MouseButtons.Left) // 鼠标左键按下

{

x1 = e.X;  // 获取鼠标左键按下时的坐标

y1 = e.Y;

textBox1.Text = Convert.ToString(x1); // 显示坐标

textBox2.Text = Convert.ToString(y1);

mouseDown = 1;      // 鼠标左键按下标识为1

}

privatevoid pictureBox1_MouseMove(object sender, MouseEventArgs e)

{

if (mouseDown == 1)    // 鼠标左键按下后的挪动

{

Graphics g = pictureBox1.CreateGraphics();

Pen WhitePen = newPen(Color.White);

Pen RedPen = newPen(Color.Red);

Rectangle rect0 = newRectangle(x0, y0, width, height);

g.DrawRectangle(WhitePen, rect0);  // 擦除前次画的框

width = e.X - x1;  // 盘算鼠标左键按下后挪动的间隔

height = e.Y - y1;

Rectangle rect = newRectangle(x1, y1, width, height);  //创立矩形数据构造并赋值

g.DrawRectangle(RedPen, rect);  // 画框

x0 = x1; y0 = y1;

}

privatevoidpictureBox1_MouseUp(object sender, MouseEventArgs e)

{

if (e.Button == MouseButtons.Left) // 鼠标左键抬起

{

x2 = e.X;  // 获取鼠标左键抬起时的坐标

y2 = e.Y;

textBox3.Text = Convert.ToString(x2); // 显示坐标

textBox4.Text = Convert.ToString(y2);

mouseDown = 0;  // 鼠标左键按下标识为0

以上便是C#的少许基本操作方法了,至于怎样运用C#来完成运动掌握卡/器的掌握,敬请等候下篇作品哦~


声明:本文为转载类作品,如涉及版权题目,请及时联络我们删除(QQ: 2737591964),未便之处,敬请谅解!

供稿:深圳市雷赛智能掌握股份有限公司

本文链接:/tech/detail.aspx?id=37394

色情网址来源免费不卡

官方微信

扫一扫,新闻随手掌控

运动与掌握

官方微信

扫一扫,运动与掌握新闻随手掌控

深圳市雷赛智能掌握股份有限公司

  • 地 址:深圳市南山区学苑大道1001号南山智园A3栋11楼
  • 电 话:0755-26433338
  • 网 址:http://www.leisai.com
  • 传 真:0755-26402718

相关作品

联络我们

广告联络:0755-82048561
展汇协作:0755-83736589
杂志投稿:0755-82048562

网站简介|会员效劳|联络方法|帮帮新闻|版权新闻|网站地图|友谊链接|法律支撑|看法反应

版权通通 2006-2016 色情网址来源免费不卡欧洲a片|在线av视频|成人综合网   www.blackroseink.com all rights reserved

  • 经营许可证
    粤B2-20150019

  • 粤ICP备
    14004826号

  • 不良新闻
    举报中心

  • 网络110
    报警效劳

网站客服热线

0755-82949061

网站题目客服

2737591964