第02篇:C#星夜拾遗之Windows窗体
尽管人们一直说高手都用编写控制台程序,尽管企业都在使用基于Web的应用程序,但我这里依然选择了从Windows窗体入门。原因很简单,我喜欢WinForm应用程序完美的可视化界面。
创建Windows窗体应用程序
根据上一篇中的WinForm版 Hello World的方法,创建一个名为SampleWinFormApp的Windows应用程序。这是最简单、明了的创建方式。也有一些高人通过Nodepad创建,并通过命令行编译执行的,这里不做说明,因为笔者没有那样做过。
在Form1的编辑窗口中,你可以拖拉工具箱中的项到窗口中,在公共控件栏目中的项为总常用的。你可以随意拖几个控件看看运行的效果,实践是检验真理的唯一方法,也是走向编程大门的不二法门。
说说Program.cs
双击打开Program.cs文件,会看到这个文件里面就一个Main方法,学习过C语言的都应该知道,Main方法就是程序的入口,这也不例外。Main方法中有三行代码,前两行貌似是设置窗口样式什么的,不做说明。第三行的用处在于设置运行时的窗口。这里是Form1,如果你的程序中有一个Form2,并且你希望程序运行后进入的界面是Form2,就可以将这里的Form1改为Form2即可。
另外,在Main方法中还可以加入一些系统初始化的内容,例如在这里初始化数据库连接对象、检验程序是否注册等。
说说Control类
Control类是每个控件和窗体的基类,它的核心功能是创建用户所见的界面。
Control类实现向用户显示信息的类所需的最基本功能。它处理用户通过键盘和指针设备所进行的输入。它还处理消息路由和安全。虽然它并不实现绘制,但是它定义控件的边界(其位置和大小)。它提供窗口句柄 (hWnd)……总之,这个Control类可谓功能强大。感兴趣的朋友可以参考MSDN,这里不多赘言。
窗口之间的参数传递(示例下载:SampleWinFormApp.rar)
既然要传递参数,自然要新建第二个窗口,右键项目>添加>Windows窗体,如下图:
在添加完成后,将Form1和Form2设计下图:
相信你已经明白这个示例要做的事情了吧,没错,就是对Form1中的名称进行重命名操作。操作流程为:点击“重命名”按钮,打开Form2,在Form2中显示并可修改Form1中的名称,修改完成后点击“确定”按钮,Form1中的名称也会更新。
首先,为窗口中的按钮添加单击事件,可以通过双击按钮本身,也可以在事件列表窗口中找到,并添加。这里的所有名称都采用默认值。
然后就是编程了。这里给出Form1 和Form2 的全部代码:
{
public Form1()
{
InitializeComponent();
this.textBox1.ReadOnly = true; // 设置TextBox1只读
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this.textBox1.Text);
// 判断是否点击确定按钮
if (form2.ShowDialog() == DialogResult.OK)
this.textBox1.Text = form2.GetNewName();
}
}
{
public Form2(string oldName)
{
InitializeComponent();
this.textBox1.Text = oldName;
}
public string GetNewName()
{
return this.textBox1.Text;
}
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
}
结束语
记得在刚学习C#窗体应用程序时,在参数传递这一部分浪费了很多时间,最后还是请教老师才搞明白的。其实这里是类的调用,没有面向对象编程基础的朋友可能不理解,在后面的章节中会进一步说明。
如果认为此文对您有帮助,别忘了支持一下哦!
本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2010/05/14/1735697.html,如需转载请自行联系原作者
第02篇:C#星夜拾遗之Windows窗体相关推荐
- 第05篇:C#星夜拾遗之使用数据库
前言 C#常用来开发数据管理类软件,所以学会在C#程序中使用数据库是非常有必要的.目前微软的两个常用数据库软件分别是Access和Sql Server.读者可以自行了解这两种数据库的优劣点,笔者不做过 ...
- 32位mysql安装包_《MySQL 入门教程》第 02 篇 MySQL 安装
文章来源:<MySQL 入门教程>第 02 篇 MySQL 安装 原文作者:不剪发的Tony老师 来源平台:CSDN 上一篇我们了解了什么是MySQL数据库. 本文介绍如何在 Window ...
- pythonselenium教程模拟鼠标和键盘_【02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...
- 第 02 篇 在 SQL 的世界里一切都是关系
<SQL 从入门到精通>专栏目录 第 01 篇 和数据打交道的你,一定要学会 SQL 第 02 篇 在 SQL 的世界里一切都是关系 第 03 篇 使用 SELECT 语句初步探索数据库 ...
- 高效办公——Excel表格-02篇(if函数常见用法 + 条件格式的使用)
高效办公--Excel表格-02篇(if函数常见用法 + 条件格式的使用) 1. if单条件简单用法 1.1 简单需求 1.2 实现方法 2. if多条件使用(if-else的情况) 3. if多条件 ...
- 【小5聊】C#一键设置桌面壁纸同时叠加今天工作或备注内容到壁纸上(windows窗体篇)
[实现效果] [简单描述] 这里主要是通过windows窗体来实现,当然你也可以通过web方式来实现,后台代码都是一样的,只是传输的数据方式不一样 为了方便,一打开电脑就知道今天的工作内容或一些备忘录 ...
- WebBrowser控件[Windows窗体]之介绍篇
Windows 窗体控件 WebBrowser 可承载网页,并为应用程序提供 Web 浏览功能. 使用 WebBrowser 控件,可以复制应用程序中的 Internet Explorer Web 浏 ...
- Windows窗体学这一篇就够了(C#控件讲解)
目录 一.Form窗体 1.1窗体的创建和删除 1.添加窗体 2.删除窗体 3.多窗体的使用 1.2.窗体属性 1.2.1更换窗体图标 1.2.2隐藏窗体的标题栏(FormBorderStyle属性) ...
- vs 窗体连接mysql_vs2008 c#开发windows窗体程序,怎么连接数据库?
你的位置: 问答吧 -> .NET -> 问题详情 vs2008 c#开发windows窗体程序,怎么连接数据库? 我的oracle服务器为WebServer数据库为MIS,用户名为MIS ...
最新文章
- 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.2 内部函数与操作
- 在silverlight中通过对话框把选择的图片插入到RichTextBox中
- AUC、Precision、Recall、F-measure、Accuracy
- IDEA springboot项目中properties配置文件 {针对将对应GBK改为UTF-8并勾选转为ASCII后仍无效情况} 运行时中文乱码解决
- python如何修改excel数据库_python修改excel数据库
- spring 查找实现类_69道Spring面试题和答案
- php文件断点续传,PHP实现文件下载断点续传详解
- 北航院系和数字的对应关系
- linux - mysql 异常:Ignoring query to other database
- 量化人的海市蜃楼:被统计谬误支配的世界
- LIBJPEG-TURBO库移植
- ##spss软件学习笔记20181031
- Mysql 8踩坑之1054(42S22):Unkown column ‘password‘ in ‘field list‘ 与1251- Client deos not support authen
- odi连接oracle数据库,ODI Studio 11g 连接Essbase数据源
- python的turtle的正六角形简洁画法
- 本地计算机出现多个网络连接,电脑网络连接出现感叹号?教你一招解决
- 最形象的卷积神经网络详解:从算法思想到编程实现(转载)
- 实测拼多多售假小米电视机 商家:不是原厂
- firework—烟花源码(01)
- 《李开复自传——世界因你不同》——试读章节pdf下载
热门文章
- java 向已存在的excel中追加数据 .
- 济南计算机机械工程学校,济南电子机械工程学校
- 被尘封的故事技能点bug_新月纪元稳定版下载-新月纪元bug修复版1.0 修复版
- 单元格自适应宽度_Excel如何对表格进行自适应设置,方法很简单
- nodejs shell交互_nodejs调用shell
- linux arm内核栈切换,ARM Linux中断发生时内核堆栈切换
- git 开源 java_开源中国GIT中Java分类下TOP10项目的活动情况分析
- guns java_guns——一个简便的后台管理系统
- php任意文件删除漏洞,phpshe后台任意文件删除漏洞及getshell | CN-SEC 中文网
- tcp当主动发出syn_一文读懂TCP四次挥手工作原理及面试常见问题汇总