Windows Forms编程实战学习:第一章 初识Windows Forms

  1. 初识Windows Forms

1,用C#编程


using System.Windows.Forms;

?

[assembly: System.Reflection.AssemblyVersion("1.0")]

?

namespace MyNamespace

{

public class MyForm : Form

{

public MyForm()

{

this.Text = "Hello Form";

}

[System.STAThread]

public static void Main()

{

Application.EnableVisualStyles();

Application.Run(new MyForm());

}

}

}

Application类

Application类用于管理应用程序、线程和Windows消息所需要的静态方法,这个类被声明为密封的(sealed),也就是说无法被继承。


公共静态属性


AllowQuit


是否退出了应用程序


CommonAppDataRegister


获取所有用户共享的应用程序数据的注册表键(HKLM)


CurrentCulture


获取或设置当前线程的本地化设置


OpenForms


获取这个应用程序活动Form对象的合集


ProductName


获取应用程序产品名


ProductVersion


获取应用程序的版本


StartupPath


启动应用程序的可执行文件路径


UserAppDataRegister


获取当前用户指定的应用程序数据的注册表键(HK_USER)


公共静态方法


AddMessageFilter


安装一个IMessageFilter接口,对当前线程的窗口消息进行监视。它可以用于拦截到达这个窗口的消息


DoEvents


处理当前位于消息队列中的任何Windows消息


EnableVisualStyles


允许应用程序的可视化风格


Exit


停止应用程序中所有的消息循环,并关闭这个应用程序的所有窗口。注意,它可能无法强制应用程序退出。


ExitThread


只停止当前线程中的消息循环,并关闭当前线程的所有窗口


Run


在当前线程中启动一个标准的消息循环。如提供一个Form,就使用它。


公共静态事件


ApplicationExit


当应用程序将要关闭时发生


Idle


当应用程序将要进入空闲状态时发生


ThreadException


当一个线程中出现一个未捕获异常时发生


ThreadExit


当应用程序中的一个线程将要关闭时发生

?

2,添加控件


using System;

using System.Drawing;

using System.Windows.Forms;

?

[assembly: System.Reflection.AssemblyVersion("1.3")]

?

namespace MyNamespace

{

public class MyForm : Form

{

private Button btnLoad;

private PictureBox pbxPhoto;

?

public MyForm()

{

this.Text = "Hello Form 1.2";

?

//create and configure a button

btnLoad = new Button();

btnLoad.Text = "&load";

btnLoad.Left = 10;

btnLoad.Top = 10;

?

//create and configure a picture box

pbxPhoto = new PictureBox();

pbxPhoto.BorderStyle = BorderStyle.Fixed3D;

pbxPhoto.Width = this.Width / 2;

pbxPhoto.Height = this.Height / 2;

pbxPhoto.Left = (this.Width - pbxPhoto.Width) / 2;

pbxPhoto.Top = (this.Height - pbxPhoto.Height) / 2;

?

//add our new controls to the form

this.Controls.Add(btnLoad);

this.Controls.Add(pbxPhoto);

}

?

?

[System.STAThread]

public static void Main()

{

Application.EnableVisualStyles();

Application.Run(new MyForm());

}

}

}

?

当一个控件被添加到窗体后,它位于这个窗体控件堆栈Z序的最后。

?

3,加载文件


using System;

using System.Drawing;

using System.Windows.Forms;

?

[assembly: System.Reflection.AssemblyVersion("1.3")]

?

namespace MyNamespace

{

public class MyForm : Form

{

private Button btnLoad;

private PictureBox pbxPhoto;

?

public MyForm()

{

this.Text = "Hello Form 1.2";

?

//create and configure a button

btnLoad = new Button();

btnLoad.Text = "&load";

btnLoad.Left = 10;

btnLoad.Top = 10;

btnLoad.Click += new EventHandler(this.HandleLoadClick);

//create and configure a picture box

pbxPhoto = new PictureBox();

pbxPhoto.BorderStyle = BorderStyle.Fixed3D;

pbxPhoto.Width = this.Width / 2;

pbxPhoto.Height = this.Height / 2;

pbxPhoto.Left = (this.Width - pbxPhoto.Width) / 2;

pbxPhoto.Top = (this.Height - pbxPhoto.Height) / 2;

pbxPhoto.SizeMode = PictureBoxSizeMode.Zoom;

?

//add our new controls to the form

this.Controls.Add(btnLoad);

this.Controls.Add(pbxPhoto);

}

?

private void HandleLoadClick(object sender, EventArgs e)

{

OpenFileDialog dlg = new OpenFileDialog();

dlg.Title = "Open Photo";

dlg.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";

?

if (dlg.ShowDialog() == DialogResult.OK)

{

pbxPhoto.Image = new Bitmap(dlg.OpenFile());

}

?

dlg.Dispose();

}

?

[System.STAThread]

public static void Main()

{

Application.EnableVisualStyles();

Application.Run(new MyForm());

}

}

}

OpenFileDialog类允许用户选择一个需要打开的文件。

Filter字符串每部分使用|分隔,每一对值分别表示在对话框中所显示的字符串以及显示文件时所用的正则表达式。

?


公共属性


AddExtension


如果用户省略扩展名,这个属性获取或设置文件对话框是否会自动添加文件扩展名。


CheckFileExists


如果指定的文件不存在,这个属性获取或者设置文件对话框是否显示警告信息。


DefaultExt


获取或设置默认的文件扩展名


FileName


获取或设置包含了被选择文件名的字符串


FileNames


获取一个字符串数组,包含了被选择的文件名集合


Filter


获取或设置文件名过滤字符串


InitialDirectory


获取或显示文件对话框所显示的初始目录


RestoreDirectory


获取或设置文件对话框在关闭前是否把目录恢复到原先的值


ShowHelp


获取或设置文件对话框是否出现帮助按钮


Title


获取或者设置文件对话框标题栏字符串


公共方法


Dispose


释放对话框所使用的资源


Reset


将对话框属性重设为默认值


ShowDialog


显示一个常用对话框,并返回用户所选所选择按钮的DialogResult枚举值


公共事件


HelpRequest


点击"帮助"按钮时发生

?

4,更改窗体大小


using System;

using System.Drawing;

using System.Windows.Forms;

?

[assembly: System.Reflection.AssemblyVersion("1.4")]

?

namespace MyNamespace

{

public class MyForm : Form

{

private Button btnLoad;

private PictureBox pbxPhoto;

?

public MyForm()

{

this.Text = "Hello Form 1.4";

?

//create and configure a button

btnLoad = new Button();

btnLoad.Text = "&load";

btnLoad.Left = 10;

btnLoad.Top = 10;

btnLoad.Click += new EventHandler(this.HandleLoadClick);

btnLoad.Anchor = AnchorStyles.Top | AnchorStyles.Left;

?

//create and configure a picture box

pbxPhoto = new PictureBox();

pbxPhoto.BorderStyle = BorderStyle.Fixed3D;

pbxPhoto.Width = this.Width / 2;

pbxPhoto.Height = this.Height / 2;

pbxPhoto.Left = (this.Width - pbxPhoto.Width) / 2;

pbxPhoto.Top = (this.Height - pbxPhoto.Height) / 2;

pbxPhoto.SizeMode = PictureBoxSizeMode.Zoom;

pbxPhoto.Anchor = AnchorStyles.Top | AnchorStyles.Bottom

| AnchorStyles.Left | AnchorStyles.Right;

?

//add our new controls to the form

this.Controls.Add(btnLoad);

this.Controls.Add(pbxPhoto);

}

?

private void HandleLoadClick(object sender, EventArgs e)

{

OpenFileDialog dlg = new OpenFileDialog();

dlg.Title = "Open Photo";

dlg.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";

?

if (dlg.ShowDialog() == DialogResult.OK)

{

pbxPhoto.Image = new Bitmap(dlg.OpenFile());

}

?

dlg.Dispose();

}

?

[System.STAThread]

public static void Main()

{

Application.EnableVisualStyles();

Application.Run(new MyForm());

}

}

}

所有控件都支持Anchor属性,属性值是AnchorStyles枚举的值


枚举值


Bottom


被锚定到底部边缘


Left


被锚定到左侧边缘


None


没被锚定,当容器大小改变时,控件在各个方向移动的距离是容器各个方向所改变幅度的一般。


Right


被锚定到右侧边缘


Top


被锚定到顶部边缘

锚定:保持距离不变

?

Dock:固定到边缘

Control类中均可使用。如果控件设定了Dock属性None以外的属性值,Anchor值被锚定到顶部和左侧。


枚举值


Bottom


停靠到底部边缘


Fill


停靠到所有边缘


Left


停靠到左侧边缘


None


没有停靠,由Anchor属性决定位置


Right


停靠到右侧边缘


Top


停靠到顶部边缘

时间: 2024-10-10 14:16:54

Windows Forms编程实战学习:第一章 初识Windows Forms的相关文章

《跟老男孩学Linux运维之shell编程实战》-第一章 shell脚本初步入门

本文是在学习<跟老男孩学Linux运维之shell编程实战>这本书时记录的知识点.看了这本书,我受益匪浅,当然这仅是我个人观点.下面我们言归正传,开始了解一下shell脚本吧! shell本身是一个命令解释器,它的作用是解释执行用户输入的命令及程序等. shell脚本语言的种类:sh.ksh.bash.csh.tcsh,Linux中主流的shell是bash,所以本文及后续shell脚本以bash为主. 那我们如何查看Linux系统中默认的shell? [[email protected] ~

Windows Forms编程实战学习:第二章 欢迎使用Visual Studio

第二章 欢迎使用Visual Studio 1,AssemblyInfo文件 包含程序集的属性,向应用程序添加元数据 [assembly:<attribute>(<setting>)] AssemblyInfo常用属性 属性 描述 AssemblyTitle 程序集标题 AssemblyDescription 程序集描述 AssemblyCompany 程序集公司名 AssemblyProduct 程序集产品名 AssemblyCopyright 程序集的版权字符串 Assembl

【翻译习作】 Windows Workflow Foundation程序开发-第一章01

第 1 章    欢迎来到工作流的世界 …思想如蝴蝶般飞到我身边 —— Gossard / Vedder (译注:Gossard与Vedder是来自Pearl Jam乐队的2名乐手,该句出自他们的歌曲<Even flow>) Windows Workflow可被看作是继COM+和分布式事务协调器(DTC)之后,Windows平台上最令人瞩目的一款中间件产品.它们之间的区别在于:不是每一个软件应用都需要进行分布式事务处理:但几乎每个软件都要在其内部实现工作流.为了能够领会微软设计Windows

web学习第一章

web学习第一章 我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻的是WEB应用程序的工作原理,因为老师为了解释这个画来很多遍图,我当时想的是:为什么还有人没懂?我都听困了. 直到老师说要抽人起来画图,我一下就回过神来了,于是乎老师抽人开始了,我看见同学一个个的被抽上去画,我发现我有些东西怎么没看见过,在他们画的同时我就在下面学,错一个,我就记一个. 今天老师还是继续

【翻译习作】 Windows Workflow Foundation程序开发-第一章03

1.2.2.Visual Studio 2005扩展包 微软也为Windows Workflow开发者提供了Visual Studio 2005扩展包.扩展包将许多功能集成到Visual Studio里,其中就包括一个用于编制工作流的可视化设计器.下面就是可视化设计器的截屏图. 这个设计器的窗口式样与我们所熟悉的Windows和Web表单设计器保持一致.Toolbox(工具箱)窗口中列出了可以拖放到设计器台面上的所有活动.我们也可以把自定义的活动添加到Toolbox中去.一旦把一个活动放置到设计

W3cschool编程实战学习HTML5&amp;CSS实战简介《一》

上周感兴趣想学习一下HTML基础入门.(虽然可能和自己就业没多大关系,但是多了解一点总没坏处.)我在W3cshool上学习编程实战学习中HTML5&CSS的课程,由于平时比较忙,我只能每天晚上抽半个小时做题,本周末又恰逢研究生考试现场确认,因此,目前只写了前面一部分.后续会继续更新. html简单示例分析 <!DOCTYPE html> <html> <body> <h1>我是第一个标题</h1> <p>我是第一个段落.<

《编程珠玑》第一章

一.题目: 如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万.实际上这个需要1.25MB的内存空间(这里所说的空间是考虑用位图表示法时,每一位代表一个数,则1千万/(1024*1024*8) 约为1.25MB  ). 1MB总共有838,8608个可用位.所以估计也可以在1MB左右的空间里面进行排序了. 分析: 1)基于磁盘的归并排序(耗时间) 2)每个号码采用32位整数存储的话,1MB大约可以存储250 000 个号码,需要读取文件40趟才能把全部整数排序.(耗时间) 3)

《DirectX 9.0 3D游戏开发编程基础》 第一章 初始化Direct3D 读书笔记

REF设备 参考光栅设备,他能以软件计算方式完全支持Direct3D Api.借助Ref设备,可以在代码中使用那些不为当前硬件所支持的特性,并对这此特性进行测试. D3DDEVTYPE 在程序代码中,HAL设备用值D3DDEVTYPE_HAL来表示.该值是一个枚举变量.REF设备用D3DDEVTYPE_REF来表示.这种类型非常重要,你需要铭记,因为在创建设备的时候,我们必须指定使用哪种设备类型. COM(组件对象模型) 创建COM接口时不可以使用c++关键字new.此外使用完接口,应调用Rel

Java编程思想学习第一天

今天开始正式学习Java编程思想,把遇到的一些比较经典的语句记录下来,作为自己学习的一份成果! 一. 面向对象的基本特性: 第一:万物皆为对象        第二:程序是对象的集合,他们通过发送消息来告知彼此所要做的   第三:每个对象都有自己的由其他对象所构成的存储   第四:每个对象都拥有其类型   第五:某一特定类型的所有对象都可以接收同样的消息   对象具有状态.行为和标识 二. 每个对象都提供服务      1. 将对象想象为一个服务提供者,程序本身将向用户提供服务 2. 将对象想象为