2011-07-16 26 views
0

我有這個戰艦程序,我試圖訪問另一種形式的功能。此功能用於將遊戲板上的按鈕更改爲啓用或禁用,具體取決於輪到誰。將按鈕更改爲啓用和禁用不是我的問題。我的問題是訪問該功能,以另一種形式做到這一點。我會張貼代碼,但它很冗長,並在三種形式之間傳播。訪問另一種形式的功能 - C#

感謝任何幫助!

在此先感謝!

盧克

+0

沒有什麼比winforms教程序員的技能。微軟應該稱之爲「Visual Oop」。可悲的是,這會以太快的P作爲前綴。好吧,主意不好。 –

回答

3

這取決於你的代碼架構:

  1. 的粗略一個類:如果你只是有幾種形式Form _form1, Form2 _form2,您可以創建一種他們通過,只是一個例子僞之間的關係:

    public class Form1:Form 
    { 
        Form2 _form2Object = null; 
    
        public Form1(Form2 frm2) 
        { 
         _form2Object = frm2; 
        } 
    
        //and after when needed just use that _form2Object to call a mehod on it. 
    } 
    
  2. 更好一個:被聲明所有喲之間共享你的表單事件調度程序。因此,當Form1想通知somethign到Form2它調用調度程序比較的方法,它負責調用正確的方法上Form2

可能有很多其他的解決方案的更多或更少的更好,但它在很大程度上取決於你的應用架構。在這裏,我只是放下你可能有的一些選擇。

希望這會有所幫助。 此致敬禮。

4

爲什麼拉不出來的功能將自己的公共類(如ButtonConfigurator或類似的東西)。然後任何形式都可以容納一個ButtonConfigurator對象並使用它。

0

您需要將帶有Button的窗體實例傳遞給您調用該函數的窗體,並將該功能公開。

0

讓我們假設你有一個Form form1,它有方法method1,你想要在Form form2中訪問。您可以聲明該方法爲public static。這樣你可以訪問像form1.method1這樣的方法。