程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#開發windows程序技巧

C#開發windows程序技巧

編輯:關於C語言

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}");
                }
            }
        }

    }

  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved