2017-03-02 7 views
-6

なぜ私はこれを呼び出せませんか? 。; - StartNewGame方法が実際に実行されている間、それは唯一の「存在」、および(Noobishは現在のコンテキストに存在しません

public void StartNewGame() 
{ 
    Button GamePanelHideButton = new Button(); 
} 

public void GamePanelHideButtonClick() 
{ 
    GamePanelHideButton.Visible = !GamePanelHideButton.visible; 
} 

GamePanelHideButtonコンテキストに存在しない:(その前に作成されたものの

+1

ここで質問する前に、基本的なC#チュートリアルを実行してください。 – DavidG

+0

ありがとうございました:/ – DoctorDeath

+1

「範囲」をカバーするチュートリアルを見つけてください。 –

答えて

2

ボタンのあなたの作成はstartnewgame内スコープさ()とは、方法GamePanelHideButtonClick

移動し、両方の方法の外GamePanelHideButton変数にアクセスすることはできません。

この

public Button GamePanelHideButton; 

public void StartNewGame() 
{ 
    GamePanelHideButton = new Button(); 
} 

public void GamePanelHideButtonClick() 
{ 
    GamePanelHideButton.Visible = !GamePanelHideButton.visible; 
} 
+0

のようなあなたのメソッドと同じクラスのフィールドにしてください。初心者レベルのC#で私の唯一の最も簡単な方法だと思われます。どうもありがとうございました。 – DoctorDeath

+0

「パブリックボタンGamePanelHideButton;」私のために働いていませんでした。 – DoctorDeath

+0

私は答えを編集して、正しい大文字と小文字を区別します。 – Marc

0

GamePanelHideButtonはローカル変数であります

また、「使用前に作成された」という文は、確かにであることを確認してください。ではありません(少なくとも、は必ずではありません)。表示される2つのメソッドが特定の順序で実行されることを保証するものは何もありません。コンパイラが知っているすべてのもののような順序で実行できます。

+0

ありがとうございます。私は本当に1つのブール値のプロパティを1回だけトグルするためにフィールドクラスを作成したいとは思っていません。とにかく深刻な対応をありがとう。 – DoctorDeath

+0

@DoctorForDeath別のクラスは必要ありません。Marcの答えが – EJoshuaS

0

)が(このボタンGamePanelHideButton =新しいボタンを移動してみてください。どのような方法の外にあってもそれはうまくいきました。

Button GamePanelHideButton = new Button(); 
関連する問題