C# winform 窗體間互操作(用委託與事件)

今天下午做一個功能,是在ListView中的記錄中查找符合條件的項。

查找也想用個窗體,如圖:


ListView是在主界面上,按下Ctrl + F,就可調出查找窗體。


當點擊“查找時”,怎麼把查找條件傳給主窗體,並且執行查找方法。

這裏我用了代理(委託)。

定義一個委託:

        public delegate void SearchNoticeHandler(string searchitem, string searchdetail);

再定義一個事件:

        public static SearchNoticeHandler OnSearchNoticeEvent;


在主窗體裏,綁定事件和方法:

            CGlobal.OnSearchNoticeEvent = OnSearchNotice;

其中,OnSearchNotice是處理方法, 在這裏面進行查找Listview,選中某一項等等。


然後,在點擊“查找”是,執行下面一句:

            CGlobal.OnSearchNoticeEvent(searchItem, searchDetail);

這樣,整個查找功能就實現了。


另:

還遇到一個小問題,就是點擊“查找”後,在ListView裏選中了某一項,但是查找窗體就跑到主窗體後面了,可以通過設置查找窗體的TopMost = false實現始終在前面。

發佈了49 篇原創文章 · 獲贊 11 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章