老師好,請教一下:
有一個winform表單,主表單有一個treeView,點擊View1和label1分別會加載子表單到panel1(也就是黃色區域)。
現在有沒什么方法,點擊button1(點擊label1加載的子表單),可以改變treeView的form1節點的字符,譬如從“form1”變為“test”
uj5u.com熱心網友回復:
可以直接訪問父表單類的控制元件,然后修改它的資料項;還可以在父表單中創建一個委托,在子表單中通過呼叫委托的方式修改控制元件資料項。
uj5u.com熱心網友回復:
控制元件對象都是參考類型,子窗體實例化的時候,把父窗體的treeView實例傳遞給子視窗就行了。uj5u.com熱心網友回復:
簡單點的就是把父表單當引數傳到子表單,這樣就可以在子表單訪問父表單的控制元件(把要訪問的控制元件設定為公共的)uj5u.com熱心網友回復:
假如有個參考變數a,你要改變它的值會怎樣?是不是a.prop=xxx?當然,前提就是a在你的當前的訪問范圍內。那a怎樣能被當前的代碼訪問呢?1、區域變數
2、類欄位
3、公開靜態變數
4、某個可訪問物件的公開屬性
所以,當a是個treeView的時候,你就是想辦法讓a變成你的代碼可以訪問。以上四種手段均可考慮。
當然除了以變數的方式進行修改,你也可以間接地去做這件事情。比如定義事件,事件中的代碼可以修改treeview,也可以利用訊息回圈,通過系統訊息傳遞修改引數,也可以定義中間變數,用一個執行緒去監控中間變數,然后做出相應的修改。
而以上這些,其實有個相對應的概念,叫設計模式。
uj5u.com熱心網友回復:
傳遞物件是參考傳遞,所以,你把tree物件或者它的某個item物件傳遞給button所在背景關系就可以了uj5u.com熱心網友回復:
建議先學學vue,看看玩js的人們怎么弄。玩js的人會告訴,你顯示模板是顯示模板,資料是資料。別擱到一起說。
同樣其實我們這里也一樣,資料是資料,顯示是顯示。只是你們被帶歪了,能理解這個的不多。
所以,我建議你先玩玩vue,玩上2個星期。在回頭看看你現在的代碼,你會發現你現在的代碼多么的“慘不忍睹”
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/8436.html
標籤:C#
