2013-11-14 19 views
1

即時通訊嘗試獲取表單中的某個函數以在類中工作。如何使用類c中的窗體中的函數#

public void Say(string Text) 
    { 
     lalSay.Text = Text; 
    } 

這是表單中的代碼。

Say("Darn i dont have" + ItemCost + "Bits."); 
          //^this is a string in my program 

這是在課堂上。

我只是不能找到最新的錯誤?

它不會讓我使用類中的功能。

+0

如果Say()在窗體中,則不同的Class將不知道Say()是什麼。若要在類中使用Say(),則需要將引用傳遞給該類,以便可以對該表單的該實例調用Say()。另一種方法是讓類提高表單偵聽的自定義事件。然後當收到該事件時,Form可以直接用請求的字符串調用Say()。 –

+2

你收到了什麼錯誤? – paqogomez

+0

[我應該怎麼做當有人回答我的問題?](http://meta.stackoverflow.com/help/someone-answers) – paqogomez

回答

2
Say(Darn i dont have" + ItemCost + "Bits.); 

您的參數不是字符串。像這樣使用它

Say("Darn i dont have" + ItemCost + "Bits."); 
// ^String one  ^variable^string two 

像這樣的代碼"some text"被視爲字符串。

+0

哦忘了添加這些謝謝,但那不是我的問題 – MahchinLizard

+0

@MahchinLizard:那麼你應該指定問題是什麼。 –

+0

@MahchinLizard難道你不在'ItemCost'上放一個'ToString()'? 'ItemCost'是什麼類型? – paqogomez

0

你的問題缺乏細節,但也許這是一個開始的地方。

如果您無法「使用班級中的功能」,您是否像這樣使用它?

public class Form1:Form{ 
    public void Say(string Text) 
    { 
     lalSay.Text = Text; 
    } 
} 

public class AnotherClass{ 
    public void ConsumingMethod() 
    { 
     var say = new Form1(); 
     say.Say("Darn i dont have" + ItemCost + "Bits."); 
    } 
} 

編輯: 消費從另一個類窗體類的方法是不好的代碼。您應該在自己的類中擁有業務邏輯,並讓GUI層消耗它。將你的Say方法移動到支持類是一個更好的主意,即從另一個類的表單中調用它。

+0

即時通訊設法獲得一個表單在一個類中工作的函數。 – MahchinLizard

+0

@MahchinLizard讓我知道這些編輯是否有意義。 – paqogomez

相關問題