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

停靠到顶部边缘

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

  1. C语言编程入门之--第一章初识程序

    第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...

  2. Windows Forms编程实战学习:第三章 菜单

    第三章 菜单 1,控件和容器 所有的Windows Forms控件都是从System.Windows.Forms.Control类继承的,相关类的层次结构如下图所示: MarshalByRefObje ...

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

    第二章 欢迎使用Visual Studio 1,AssemblyInfo文件 包含程序集的属性,向应用程序添加元数据 [assembly:<attribute>(<setting&g ...

  4. 第一章 初识windows程序

    window 操作系统中,处处是窗体 简单 强大 方便 灵活 步骤 新建项目 项目类型 visual C#项目 模板 window应用程序 用partial 将同一个窗体的代码分开放在两个文件中: 一 ...

  5. 【java并发编程实战】第一章笔记

    1.线程安全的定义 当多个线程访问某个类时,不管允许环境采用何种调度方式或者这些线程如何交替执行,这个类都能表现出正确的行为 如果一个类既不包含任何域,也不包含任何对其他类中域的引用.则它一定是无状态 ...

  6. Java 面向对象编程——第一章 初识Java

      第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...

  7. 《Go并发编程实战》读书笔记-初识Go语言

    <Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...

  8. web学习第一章

    web学习第一章   我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻 ...

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

    1.2.3  Windows Workflow运行时 从Windows Workflow的角度看,可以将工作流活动当成是交给一个工作流处理器去执行的一系列指令或操作码.在Windows Workflo ...

随机推荐

  1. docker swarm实现java项目的发布/滚动更新/回滚/镜像管理

    使用docker swarm滚动更新java项目,部署集群,这一切的前提是使用Jenkins+maven进行项目打包,分发等功能 具体可以参考我的另外三篇文章 https://www.cnblogs. ...

  2. Spring 注解学习

    @GetMapping(value = "/hello/{id}")//需要获取Url=localhost:8080/hello/id中的id值 public String say ...

  3. pgsql 变量赋值方法

    1.网上一般说的方法如下: :=,赋值,比如user_id := 20; select into 赋值,比如 SELECT INTO myrec * FROM emp WHERE empname = ...

  4. vue 解决跨域问题

    1.后端处理允许跨域 2.反向代理跨域 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去去的网络信息.形象的说:它是网络信息的中转站. vue中设置代理: 1.config/in ...

  5. vue中组件间的传参

    1.父传子 父组件准备一个数据,通过自定义属性给子组件赋值,进行传递 在子组件中通过 props 属性来接收参数 <body> <div id="app"> ...

  6. document ready

    https://developer.mozilla.org/zh-CN/docs/Web/Events/DOMContentLoaded https://github.com/addyosmani/j ...

  7. Oracle入门第一天(上)——简介与安装

    一.Oracle介绍  Oracle 公司是全球最大的信息管理软件及服务供应商,成立于1977年 Oracle 公司因其复杂的关系数据库产品而闻名.Oracle的关系数据库是世界第一个支持SQL语言的 ...

  8. 20155229 实验一《Java开发环境的熟悉》实验报告

    20155229 实验一<Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Idea 编辑.编译.运行.调试Java程序. 实验步骤 (一) ...

  9. 20145226夏艺华 《Java程序设计》第9周学习总结

    教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型和自定义枚举 会使用标准注解 第16章 整合数据库 16.1 JDBC入门 (一)JDB ...

  10. Ubuntu genymotion

    官网注册帐号 下载genymotion-[VERSION]_[ARCH].bin 进入android studio In Android Studio, go to File > Setting ...