亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Winform開發幾個常用的開發經驗及知識積累(一)

2019-11-17 02:19:23
字體:
來源:轉載
供稿:網友
Winform開發幾個常用的開發經驗及知識積累(一)

本人做Winform開發多年,孜孜不倦,略有小成,其中收集或者自己開發一些常用的東西,基本上在各個項目都能用到的一些開發經驗及知識積累,現逐步介紹一些,以饗讀者,共同進步。

1、窗口【×】關閉按鈕變為最小化,并在托盤提示信息

一般有些管理系統,為了防止客戶隨意關閉程序或者基于其他原因,一般會把 窗口【×】關閉按鈕變為最小化,如大家熟悉的飛信、MSN等等,但是有些不是很熟悉的客戶,最小化到托盤的時候,卻不知道程序到了那里去了,因此,最小化的時候,伴隨一個氣泡提示信息,顯得有一定的必要,如下截圖所示。

首先在主窗體的設計界面中添加一個NotifyIcon控件,然后實現相關的代碼即可。

下面列出一些關鍵的代碼出來,大家看了應該就知道如何實現了

PRivate void notifyMenu_Show_Click(object sender, EventArgs e)        {            if (this.WindowState == FormWindowState.Minimized)            {                this.WindowState = FormWindowState.Maximized;                this.Show();                this.BringToFront();                this.Activate();                this.Focus();            }            else            {                this.WindowState = FormWindowState.Minimized;                this.Hide();            }        }       private void notifyMenu_Exit_Click(object sender, EventArgs e)        {            try            {                this.ShowInTaskbar = false;                Portal.gc.Quit();            }            catch            {                // Nothing to do.            }        }        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)        {            notifyMenu_Show_Click(sender, e);        }        private void MainForm_MaximizedBoundsChanged(object sender, EventArgs e)        {            this.Hide();        }        /// <summary>        /// 縮小到托盤中,不退出        /// </summary>        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)        {            //如果我們操作【×】按鈕,那么不關閉程序而是縮小化到托盤,并提示用戶.            if (this.WindowState != FormWindowState.Minimized)            {                e.Cancel = true;//不關閉程序                //最小化到托盤的時候顯示圖標提示信息,提示用戶并未關閉程序                this.WindowState = FormWindowState.Minimized;                notifyIcon1.ShowBalloonT

2、只允許允許一個程序實例,即使是通過虛擬桌面方式連接過來的,也是只允許一個人運行。

這個已經封裝好代碼了,只需要在Main函數里面調用一下函數即可,允許多個實例會出現下面的對話框提示信息,提示不允許多實例運行,如下所示:

代碼如下所示。

/// <summary>        /// 應用程序的主入口點。        /// </summary>        [STAThread]        private static void Main()        {            GlobalMutex();            application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            //******啟動代碼**********        }        private static Mutex mutex = null;        private static void GlobalMutex()        {            // 是否第一次創建mutex            bool newMutexCreated = false;            string mutexName = "Global//" + "WareHouseMis";//系統名稱,Global為全局,表示即使通過通過虛擬桌面連接過來,也只是允許運行一次            try            {                mutex = new Mutex(false, mutexName, out newMutexCreated);            }            catch (Exception ex)            {                Console.Write(ex.Message);                System.Threading.Thread.Sleep(1000);                Environment.Exit(1);            }            // 第一次創建mutex            if (newMutexCreated)            {                Console.WriteLine("程序已啟動");                //todo:此處為要執行的任務            }            else            {                MessageUtil.ShowTips("另一個窗口已在運行,不能重復運行。");                System.Threading.Thread.Sleep(1000);                Environment.Exit(1);//退出程序            }        }

3、使用NotifyWindow給用戶提示信息

可以通過NotifyWindow類(最后附件中有),做一些信息的提示,方便用戶了解一些重要信息的提示,界面較為友好,如下所示:

提示信息的代碼使用如下:

/// <summary>        /// 彈出提示消息窗口        /// </summary>        public void Notify(string caption, string content)        {            Notify(caption, content, 400, 200, 5000);        }        /// <summary>        /// 彈出提示消息窗口        /// </summary>        public void Notify(string caption, string content, int width, int height, int waitTime)        {            NotifyWindow notifyWindow = new NotifyWindow(caption, content);            notifyWindow.TitleClicked += new System.EventHandler(notifyWindowClick);            notifyWindow.TextClicked += new EventHandler(notifyWindowClick);            notifyWindow.SetDimensions(width, height);            notifyWindow.WaitTime = waitTime;            notifyWindow.Notify();        }        private void notifyWindowClick(object sender, EventArgs e)        {            //SystemMessageInfo info = BLLFactory<SystemMessage>.Instance.FindLast();            //if (info != null)            //{            //    //FrmEditMessage dlg = new FrmEditMessage();            //    //dlg.ID = info.ID;            //    //dlg.ShowDialog();            //}        }

4、使用SearchCondion控件,簡化查詢條件的轉化

不管在Winform或者在WebForm中,查詢構造條件總是非常繁瑣的事情,使用該控件能有效簡化代碼,提高操作的準確及方便行,這個控件我完成了幾年了,一直伴隨我處理各種查詢操作。

private string GetConditionSql()        {            SearchCondition condition = new SearchCondition();            condition.AddCondition("ItemName", this.txtName.Text, SqlOperator.Like)                .AddCondition("ItemBigType", this.txtBigType.Text, SqlOperator.Like)                .AddCondition("ItemType", this.txtItemType.Text, SqlOperator.Like)                .AddCondition("Specification", this.cmbSpecNumber.Text, SqlOperator.Like)                .AddCondition("MapNo", this.txtMapNo.Text, SqlOperator.Like)                .AddCondition("Material", this.txtMaterial.Text, SqlOperator.Like)                .AddCondition("Source", this.txtSource.Text, SqlOperator.Like)                .AddCondition("Note", this.txtNote.Text, SqlOperator.Like)                .AddCondition("Manufacture", this.txtManufacture.Text, SqlOperator.Like)                .AddCondition("ItemNo", this.txtItemNo.Text, SqlOperator.LikeStartAt);            string where = condition.BuildConditionSql().Replace("Where", "");            return where;        }

可以構造條件后,傳入查詢函數,實現數據的查詢。

string where = GetConditionSql();            List<ItemDetailInfo> list = BLLFactory<ItemDetail>.Instance.Find(where, this.winGridViewPager1.PagerInfo);            this.winGridViewPager1.DataSource = new WHC.Pager.WinControl.SortableBindingList<ItemDetailInfo>(list);            this.winGridViewPager1.PrintTitle = Portal.gc.gAppUnit + " -- " + "備件信息報表";
最后呈上代碼用到的一些類庫及控件:http://files.VEVb.com/wuhuacong/WinformTips.rar
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品91久久久| 国产亚洲视频在线观看| 日韩精品丝袜在线| 欧美精品久久久久久久久| 中文字幕欧美日韩va免费视频| 午夜精品久久久久久久99热| 国产精品永久免费| 亚洲欧美一区二区三区久久| 不卡av电影在线观看| 精品国产一区二区三区久久久| 亚洲r级在线观看| 亚洲新中文字幕| 亚洲男人的天堂在线播放| 欧美大全免费观看电视剧大泉洋| 国产激情综合五月久久| 在线观看国产欧美| 91精品国产91久久久久久久久| 亚洲free性xxxx护士白浆| 久久久噜久噜久久综合| 国产精品夜间视频香蕉| 97在线免费观看视频| 亚洲最大福利网| 欧美成人全部免费| 国产91色在线播放| 欧美日韩国产中文字幕| 97av视频在线| 久久中文字幕国产| 国产一区二区在线免费视频| 97精品视频在线| 秋霞午夜一区二区| 亚洲精品福利在线| 韩国三级日本三级少妇99| 亚洲国产中文字幕在线观看| 日韩福利在线播放| 在线精品国产欧美| 日韩欧美一区二区三区久久| 性欧美在线看片a免费观看| 91精品国产成人| 亚洲国产精品网站| 91国语精品自产拍在线观看性色| 91av视频在线播放| 欧美一区二区视频97| 欧美性在线观看| 国产精品狠色婷| 91高潮在线观看| 日韩在线www| 亚洲黄在线观看| 久久久成人精品| 久久精品视频网站| 精品久久久久久亚洲精品| 亚洲精品国产精品久久清纯直播| 欧美精品情趣视频| 久久夜色精品国产欧美乱| 亚洲国产高清自拍| 欧美成人小视频| 国产精品久久激情| 韩曰欧美视频免费观看| 91av网站在线播放| 国产精品久久久久国产a级| 日韩国产一区三区| 久久精品一区中文字幕| 成人国产精品一区| 国产成人一区二区在线| 欧美黄色三级网站| 成人国产精品日本在线| 精品调教chinesegay| 国产亚洲精品一区二区| 午夜欧美大片免费观看| 久久久久久久久久国产| 三级精品视频久久久久| 欧美性生交xxxxxdddd| 久久91精品国产91久久跳| 国产成人精品亚洲精品| 欧美精品18videos性欧美| 久久久久久久久久久91| 国产精品一区专区欧美日韩| 中文字幕亚洲自拍| 欧美成aaa人片在线观看蜜臀| 欧美极品少妇xxxxx| 欧美国产精品日韩| 日韩小视频网址| 精品中文字幕在线2019| 日韩中文字幕免费| 日本精品久久久久影院| 久久久久免费精品国产| 欧洲成人午夜免费大片| 日本sm极度另类视频| 中文字幕av一区中文字幕天堂| 欧美激情成人在线视频| 日产精品久久久一区二区福利| 亚洲第一精品夜夜躁人人爽| 欧美韩日一区二区| 亚洲一区二区免费在线| 亚洲视频自拍偷拍| 久久精品久久久久久国产 免费| 国产精品主播视频| 国产一区二区三区在线观看视频| 久久久欧美精品| 成人性教育视频在线观看| 日韩av在线网页| 国产噜噜噜噜久久久久久久久| 欧美电影免费观看高清| 国产有码在线一区二区视频| 亚洲综合中文字幕在线观看| 欧美在线播放视频| 欧美日韩美女在线| 日本精品va在线观看| 精品久久久久久久久国产字幕| 国产日韩欧美另类| 亚洲激情视频在线| 欧美大片va欧美在线播放| 久久精品国产成人精品| 97国产成人精品视频| 日韩欧美在线视频免费观看| 久久噜噜噜精品国产亚洲综合| 亚洲综合日韩中文字幕v在线| 亚洲国产精彩中文乱码av在线播放| 亚洲男人天堂2023| 成人a视频在线观看| 亚洲综合中文字幕在线| 国产精品视频一区国模私拍| 久久频这里精品99香蕉| 国产精品久久77777| 免费91麻豆精品国产自产在线观看| 中文字幕精品久久| 欧美一级大胆视频| 欧美成人精品不卡视频在线观看| 亚洲国产美女久久久久| 亚洲美女视频网| 欧美日本中文字幕| 久久综合九色九九| 日韩福利在线播放| 在线观看欧美日韩国产| 日韩视频免费在线| 亚洲女人被黑人巨大进入| 欧美成人在线免费| 久久久久久久91| 日韩中文字幕视频在线| 孩xxxx性bbbb欧美| 国产一区二区三区中文| 日韩av在线看| 欧美精品生活片| 精品少妇一区二区30p| 欧美激情第一页xxx| 国产精品网红福利| 中文在线资源观看视频网站免费不卡| 91国偷自产一区二区三区的观看方式| 欧美孕妇与黑人孕交| 中文字幕日韩欧美在线| 欧美一级大片在线免费观看| 精品欧美激情精品一区| 91精品国产免费久久久久久| 国模精品一区二区三区色天香| 日韩在线观看免费高清| 色偷偷噜噜噜亚洲男人的天堂| 国产成人自拍视频在线观看| 欧美性猛交xxxx免费看久久久| 成人av.网址在线网站| 久久这里有精品视频| 亚洲激情视频网站| 亚洲精品视频中文字幕| 欧美另类交人妖| 日韩经典中文字幕在线观看| 国产精品va在线|