开发者社区> 嗯哼9925> 正文

FotoVision学习手记(3)

简介:
+关注继续查看
200100301.JPG

AboutForm十分简单,重写了继承自System.Windows.Forms.Form的OnLoad方法,而不采用AboutForm_Load来响应窗体的Load事件。

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Diagnostics;
using System.Reflection;

namespace PhotoVision
{
    /// <summary>
    /// AboutForm 的摘要说明。
    /// </summary>
    public class AboutForm : System.Windows.Forms.Form
    {
        private class Consts
        {
            public const String CompanyLink = "http://phinecos.cnblogs.com/";//开发者网站
        }
        Windows 窗体设计器生成的代码

        private void buttonOk_Click(object sender, System.EventArgs e)
        {//关闭“关于”窗体
            this.Close();
        }

        protected override void OnLoad(System.EventArgs e)
        {//重写了OnLoad方法

            base.OnLoad(e);//引发基类的Load事件

            //更新版本信息
            string delimStr = ".";
            char [] delimiter = delimStr.ToCharArray();//分割符

            String[] version = Application.ProductVersion.Split(delimiter);//分割版本号信息
            this.labelVersion.Text = String.Format("版本号: {0}.{1}.{2}",version[0],version[1],version[2]);

            //获取此应用程序使用的程序集列表

            AssemblyName[] others = System.Reflection.Assembly.GetExecutingAssembly().GetReferencedAssemblies();
            foreach(AssemblyName aName in others)
            {
                this.listAssemblies.Items.Add(String.Format("{0} ({1})",aName.Name,aName.Version.ToString()));
            }

            //图片的存放位置
            this.textPhotoLocation.Text = Global.DataLocation;

        }

        private void linkCompany_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
        {
            try
            {//启动浏览器
                this.linkCompany.LinkVisited = true;
                System.Diagnostics.Process.Start(Consts.CompanyLink);
            }
            catch(System.Exception ex)
            {
                Trace.WriteLine(ex.Message.ToString());
            }
        }
    }
}


其中,在获取图片的存放位置时使用了一个全局信息类Global。这是一个静态的不可继承的类,提供了很多供其他类读取和修改的全局信息,例如进度的执行情况,图片操作的列表和从应用程序配置文件中读取的配置信息等等。这些全局信息通过Global类提供的静态的公有属性和公有函数来进行访问。
 
下面是AboutForm里用到的Global的属性:

    /// <summary>
    /// Global 的摘要说明。
    /// </summary>
    public sealed class Global
    {
        private Global()
        {//构造函数私有使得类成为静态类
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }
        public static  String DataLocation
        {//获取指向由指定枚举标识的系统特殊文件夹的路径,其中"Personal"指定用作文档的公共储存库的目录。
            get
            {
                return System.IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.Personal),System.Windows.Forms.Application.ProductName);
            }
        }
    }


到这里为止,系统里边缘无关的信息都已经了解清楚了,接下来就要开始探索系统中最吸引人的地方---自定义控件和各种面板组件,最后是事件的反升处理(子控件将事件通知给父控件处理),我们会看到就好比是冒泡一样,层层上传事件,这更是系统的精华所在了,此外,GDI+操作更是不可错过的精彩。



本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/10/03/520493.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Kaa IoT平台学习(一)
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/72964894 kaa IoT开发平台概览 Kaa是一个用于物联网的多功能的中间件平台,他允许构建完全端到端IoT解决方案,连接的应用和智能产品。
2810 0
Python编程语言学习:仅需一行代码构造特殊列表之重复元素列表、等差数字列表等之详细攻略
Python编程语言学习:仅需一行代码构造特殊列表之重复元素列表、等差数字列表等之详细攻略
45 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19696 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
17986 0
+关注
4716
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载