天天看點

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

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

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

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

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實作始終在前面。

繼續閱讀