C#开发windows程序技巧

window|程序|技巧

1.一个应用程序只能被用户打开一次
 Process mobj_pro =Process.GetCurrentProcess();
            Process[] mobj_proList=Process.GetProcessesByName(mobj_pro.ProcessName);
            if(mobj_proList.Length>1)
            {
                MessageBox.Show("当前的应用程序已打开!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                return;
            }
2.一个框架窗口下只打开一个子窗口
CustomerAdd pobj_CustomerAdd;  
            Form pobj_CustomerAdd_Return=CheckIsExit("CustomerAdd");
            if(pobj_CustomerAdd_Return==null)
            {
                pobj_CustomerAdd=new CustomerAdd();
                OpenSheet(pobj_CustomerAdd);
            }
            else
            {
                OpenSheet((CustomerAdd)pobj_CustomerAdd_Return);
            }  
void OpenSheet(Form pobj_form)
        { 
            pobj_form.MdiParent=this;
            pobj_form.Show(); 
        }

        /**//// <summary>
        /// 判断窗口是否存在
        /// </summary>
        /// <param name="ps_windowName">窗口的名称</param>
        /// <returns>存在返回此窗口的实例 不存在返回null</returns>
        Form CheckIsExit(string ps_windowName)
        {
            for(int i=0;i<this.MdiChildren.Length;i++)
            {
                if(this.MdiChildren[i].Name==ps_windowName)
                {
                    return this.MdiChildren[i];
                }
            }
            return null;
        }
3.弹出式窗口显示渐变效果
在页面上添加一个timer控件fadeTimer,interval设为50
类的实例变量为
private m_showing=true;
在form_load中写:
Opacity = 0.0;
            Activate();
            Refresh();
            fadeTimer.Start();
            Refresh();    在timer控件的Tick事件中写:

if (m_showing)
            {
                double d = 1000.0 / fadeTimer.Interval / 100.0;
                if (Opacity + d >= 1.0)
                {
                    Opacity = 1.0;
                    fadeTimer.Stop();
                }
                else
                {
                    Opacity += d;
                }
            }
            else
            {
                double d = 1000.0 / fadeTimer.Interval / 100.0;
                if (Opacity - d <= 0.0)
                {
                    Opacity = 0.0;
                    fadeTimer.Stop();
                }
                else
                {
                    Opacity -= d;
                }
            }
4.在控件textbox中实现按回车键相当于tab键的作用
public class OSTextBox:TextBox
    {
        public OSTextBox()
        {
            
        }

        bool mb_IsKeyEnter=true;

        [
        Category("Data"),
        DefaultValue(true),
        MergableProperty(false)
        ]
        public bool IsKeyEnter
        {
            get
            {
                return mb_IsKeyEnter;
            }
            set
            {
                mb_IsKeyEnter=value;
            }
        }

        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            base.OnKeyPress (e);
            if(mb_IsKeyEnter)
            {
                if (e.KeyChar == (char)Keys.Enter)
                {
                    SendKeys.Send("{Tab}");
                }
            }
        }

    }

  

时间: 2025-01-20 14:35:54

C#开发windows程序技巧的相关文章

C#开发WINDOWS应用程序时消息的处理

window|程序 WINDOWS应用程序是靠消息驱动的,在VC中我们通过CLASSWIZARD可以为某窗口类添加消息处理函数,CLASSWIZARD将为你添加消息映射,对于WINDOWS消息,生成的消息处理函数重载了基类的虚拟方法.而在C#中如何处理消息呢?本文针对VS.NET BETA1环境下的C#简单地介绍WINDOWS消息以及自定义消息的处理方法. 示例代码下载 17K 一.生成一个名为MSGApplication的工程 工程的建立方法请参考:C#学习笔记之一 二.处理WM_PAINT消

开发必备的Windows小技巧

在Windows中我们经常会遇到各种小问题,而这些小问题又确实在影响着工作效率,如果能解决这些小问题,那么就能在一定程度上提高工作效率,保证心情愉悦.今天我就来分享一下几个自认为比较有用的小技巧. 保存TFS密码的方法 在Win7和Win8中使用VS2010连接TFS服务器时,每次启动后连接TFS都要求输入用户名密码: 开发必备的Windows小技巧-情人节必备拍照小技巧"> 一次两次还好,但是每次都输入就比较烦了,主要是还没有保存账户密码的选项,这样每次就只能实实在在的输入了. 为了避免

C#发现之旅:C#开发Windows Service程序(下)

类似的对于"停止服务",其点击事件处理为 private void btnStopService_Click(object sender, EventArgs e) { if (bolServiceInstalled == false) return; using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController("MyFileSyste

C#发现之旅:C#开发Windows Service程序(上)

Windows Service概念介绍 Windows Service,也称Windows服务,是32位Windows 操作系统中一种长期运行的后台程序.它们长期后台运行,没有用户界面,默默无闻,但它 们却是支持Windows正常运行的幕后英雄,却永无出头之日. Windows服务程序为其他 系统模块提供了非常重要的服务,而且各个Windows服务分工明确,比如IISAdmin服务提供 WEB内容的发布功能,若IISAdmin服务不启动,则静态HTML页面.ASP.ASP.NET或者 WebSe

《C语言开发从入门到精通》一2.2 在Windows环境下开发C程序

2.2 在Windows环境下开发C程序 知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\在Windows环境下开发C程序.mp4 DOS环境对广大读者来说十分陌生,并且在DOS下进行开发也十分麻烦.为此,专门推出了Windows环境下的开发工具.Win-TC其实就是一种Windows环境下的开发工具,但是其功能和Turbo C基本类似,只是在编译和运行上更加方便而已.随着计算机技术的发展,编程工具也随之更新换代.目前最受程序员喜爱的开发工具,当属微软的Visual Studio. 2.2

windows phone vs2103-vs2013 开发windows phone 引用程序添加程序集的问题

问题描述 vs2013 开发windows phone 引用程序添加程序集的问题 vs2013 开发windows phone 添加引用ToolKit的DLL 报错,错误消息是"The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)" 求大神指点

使用Python开发windows GUI程序入门实例_python

今天终于可以用wxPython开发GUI程序了,非常高兴.把其中的一些注意点写下来以供参考.在windows XP平台下,首先需要做以下环境的配置: 1. 首先是安装python ,安装完之后将python/bin所在目录添加到path中. 2. 安装wxPython, 此时要注意wxPython的版本要与前面python的版本一致. 3. 安装py2exe, 这是windows平台下一个非常好的python程序发布工具,可以将python程序编译成exe而脱离python环境执行.做完上面的安

苹果系统软件开发-修改windows 程序,使其可在苹果系统PC端运行

问题描述 修改windows 程序,使其可在苹果系统PC端运行 有一款windows 程序,可以验证u盘启动盘是否成功,能否改成可以在苹果系统PC端具有相同功能,求外包 解决方案 如果你有那个windows程序的源代码,可以用oc在MAC下开发一款类似功能的程序 解决方案二: 让你的程序在xp系统模式下运行(适用于更高级Windows系统版本)

windows开发记事本程序纪实(二)逻辑篇1_其它综合

1. 主要内容 从本节开始介绍windows开发实现记事本程序的逻辑实现部分.本节的主要内容有以下3点: 1. 主窗口定义 -- 主要介绍记事本主界面窗口对应的窗口类及实现方案 2. RichEdit控件的选用及初始化 -- 记事本程序中编辑控件的选择及使用 3. 整个程序ICON的选择.-- 程序ICON设置 2. 实际开发 2.1 主窗口实现 在上一篇介绍界面的实现中只是给出了运行界面的效果,但是当时那个界面程序不能响应任何的windows消息,因为当时的窗口在创建时将窗口对应的过程处理函数