LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#跨窗體操作

admin
2017年5月27日 14:57 本文熱度 7958
  C# WinForm編程中,你是否遇到過這樣的問題,在主窗口Form1中點擊按鈕,彈出一個子窗口Form2,你希望在Form2中調(diào)用Form1的函數(shù),改變Form1的顯示,卻發(fā)現(xiàn)Form1不聽話,達不到預期效果。有的人說我調(diào)試了的,那段函數(shù)確實執(zhí)行了,怎么還是沒有顯示呢?
 

案例1:

在winform中,我在點擊from1的一個按鈕,彈出from3執(zhí)行一個函數(shù),其實form3就是彈出一個自制的密碼輸入框但是呢。然后我再from3中調(diào)用
    if (password == PassWord)
            {
                comfirm = true;
                form1.updateMac(row, col);
                this.Close();
            }
在updateMac(row,col)中我有個dataGridView1.Rows[row].Cells[col].Style.BackColor = Color.Green;但是顏色死活不變,特別奇怪,放在form1的其他函數(shù)里就能變,就是凡在這個form3調(diào)用form1的函數(shù)里,不能變色,是為什么啊

 

案例2:

有三個窗體然后順序分別是

(1)點擊第一個窗體中的按鈕彈出第二個窗體,隱藏第一個窗體

(2)第二個窗體到一定時間彈出第三個窗體

(3)點擊第三個窗體的按鈕關(guān)閉第三個和第二個窗體,彈出第一個窗體

 

這里給大家推薦三種方法:

首先,介紹最簡單,引用傳遞,C#的類是引用類型,那么我們在打開另外一個窗體的適合將窗體實例傳遞給另外一個窗體,另外一個窗體拿到這個實例,不是就可以做很多事情了嗎?

請看C#跨窗體操作(引用傳遞)

再來一個,C#的事件都是基于委托,那么我們就可以通過委托去實現(xiàn)在另外一個窗體對本窗體的操作,

請看C# 委托實例(跨窗體操作控件

 最后,介紹一個比較復雜的,使用C++的API,利用消息傳遞的方式,將消息給另外一個窗體,

請看C#中使用自定義消息

 

最近,經(jīng)常看見有人提出類似問題,以前自己也研究過,不過由于自己最開始是做C++的,一開始就用了最復雜的自定義消息來實現(xiàn)C#中使用自定義消息。后來看了下委托,又做了委托來實現(xiàn)C# 委托實例(跨窗體操作控件。最后偶然想到類不是引用嗎?那干嘛不直接進行傳遞,搞那么復雜干嘛?所以有了最簡單的C#跨窗體操作(引用傳遞)

 

這兩天整理了一下,全部發(fā)了出來,今天發(fā)一個匯總貼,希望對大家有幫助,歡迎拍磚,共同進步。

 


該文章在 2017/5/27 14:57:36 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關(guān)報表等業(yè)務管理,結(jié)合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本黄a级视频 | 久久久精品国产免费 | 亚洲AV元码天堂一区二区三区 | 日本激情视频一区二区三区 | 欧亚一区二区三区在线看日韩 | 亚洲国产精品久久久久婷婷图片 |