本人做winform開發多年,孜孜不倦,略有小成,其中收集或者自己開發一些常用的東西,基本上在各個專案都能用到的一些開發經驗及知識積累,現逐步介紹一些,以饗讀者,共同進步。
1、視窗【×】關閉按鈕變為最小化,並在托盤提示資訊
一般有些管理系統,為了防止客戶隨意關閉程式或者基於其他原因,一般會把 視窗【×】關閉按鈕變為最小化,如大家熟悉的飛信、msn等等,但是有些不是很熟悉的客戶,最小化到托盤的時候,卻不知道程式到了那裡去了,因此,最小化的時候,伴隨乙個氣泡提示資訊,顯得有一定的必要,如下截圖所示。
首先在主窗體的設計介面中新增乙個notifyicon控制項,然後實現相關的**即可。
下面列出一些關鍵的**出來,大家看了應該就知道如何實現了
private
void notifymenu_show_click(object sender, eventargs e)
else }
private
void notifymenu_exit_click(
object sender, eventargs e)
catch }
private
void notifyicon1_mousedoubleclick(
object sender, mouseeventargs e)
private
void mainform_maximizedboundschanged(
object sender, eventargs e)
//////
縮小到托盤中,不退出
///
private
void mainform_formclosing(
object sender, formclosingeventargs e)
} private
void mainform_move(
object sender, eventargs e)
//最小化到托盤的時候顯示圖示提示資訊
if (
this.windowstate == formwindowstate.minimized)
} 複製**
2、只允許允許乙個程式例項,即使是通過虛擬桌面方式連線過來的,也是只允許乙個人執行。
這個已經封裝好**了,只需要在main函式裡面呼叫一下函式即可,允許多個例項會出現下面的對話方塊提示資訊,提示不允許多例項執行,如下所示:
**如下所示。
//////
應用程式的主入口點。
///
[stathread]
private
static
void main()
private
static mutex mutex =
null;
private
static
void globalmutex()
catch (exception ex)
//第一次建立mutex
if (newmutexcreated)
else }
複製**
3、使用notifywindow給使用者提示資訊
可以通過notifywindow類(最後附件中有),做一些資訊的提示,方便使用者了解一些重要資訊的提示,介面較為友好,如下所示:
提示資訊的**使用如下:
//////
彈出提示訊息視窗
///
public
void notify(
string caption,
string content)
//////
彈出提示訊息視窗
///
public
void notify(
string caption,
string content,
int width,
int height,
int waittime)
private
void notifywindowclick(
object sender, eventargs e) }
複製**
4、使用searchcondion控制項,簡化查詢條件的轉化
不管在winform或者在webform中,查詢構造條件總是非常繁瑣的事情,使用該控制項能有效簡化**,提高操作的準確及方便行,這個控制項我完成了幾年了,一直伴隨我處理各種查詢操作。
private
string getconditionsql()
複製**
可以構造條件後,傳入查詢函式,實現資料的查詢。
string
where = getconditionsql();
listlist = bllfactory.instance.find(
where,
this.wingridviewpager1.pagerinfo);
this.wingridviewpager1.datasource =
new whc.pager.wincontrol.sortablebindinglist(list);
-- " + "
備件資訊報表";
複製**
最後呈上**用到的一些類庫及控制項:
Winform開發中的窗體重複及靈活切換問題
1.問題引入 在專案中需要實現主窗體點選按鈕後開啟子窗體,但是如果不限制的話每次點選都會開啟乙個新窗體,使用者體驗不好還浪費記憶體。所以這裡要做的是限制每個子窗體只可以開啟一次,如果開啟後沒有關閉子窗體或者子窗體被最小化了,就直接把已開啟的窗體啟用並置頂顯示。同時還要滿足不同的子窗體是可以共存的,也...
B端產品的特點及開發經驗
b端的產品,是以企業為單位的。所有的資料和服務都按某個機構實體進行聚合。那麼我們如何提供乙個沙箱機制?理論上,我們向客戶提供的是無差別的服務。但是由於資料庫例項 伺服器效能受到任務繁重程度不同,對資源的占用也不同。這樣就會造成同樣付費,但是某些客戶耗費的資源較多。我們來看看docker。乙個映象乙個...
嵌入式軟體開發是否需要經驗,需要哪些基礎知識?
本人從畢業到現在一直在嵌入式軟體這個行業發展,已七年有餘,也曾經迷茫無助過,也驕傲自滿過,到現在算是趨於乙個比較穩定的狀態,嵌入式軟體開發的專案本身 量不會太大,除了一些特殊的方面外,基本難度都不是太大,曾經認為只要有人帶著,什麼樣的人都可以從事這個行業,從這兩年的經驗來看,以前想的可能有點太樂觀了...