2013-05-11 9 views
5

button1.Enabled = false;の横に他の方法がありますか?ユーザーがクリックできないようにしていますか?btn.Enabled = false;を設定せずにC#のボタンを無効にする

私はWinFormsで簡単なTicTacToeゲームを実装しています。私がEnabledプロパティを使用すると、ボタンのテキストの色が灰色に変わり、ユーザーインターフェイスが大きく損なわれています。

ボタンの書式を維持して、ユーザーからのクリックを無効にしたいとします。

+2

クリックメソッドは条件付きでクリックしたときに何もしないと決める可能性があります。 –

+0

コードの重要な部分を追加すると役立ちます。 –

+2

実際にクリックしているビジュアルが表示されないようにしたいのですか?それが2番目の場合は、ブール値を簡単に入れて、必要に応じてただちに返すことができます。 –

答えて

5

おそらく最も簡単な方法は、呼び出されたイベントハンドラをデタッチすることです。

void HandleClick(object sender, EventArgs e) 
{ 
    ((Button)sender).Click -= HandleClick; 

    // Handle the click 
} 
+0

ありがとう、これは本当に他の中でも最も簡単な解決策でした。 –

0

あなたは、あなたは9つのボタンのクリックイベントハンドラ

private void button1_Clicked(object sender, EventArg e) 
{ 
    if(buttonClicked[0]==true) 
     return; 
    else 
    { 
     // your code goes here 
     // mark this button in boolean array as clicked 
     buttonClicked[0] = true; 
    } 
} 

とbuttonClickedをリセットするために、すべての新しいゲームで忘れていけないを持っているあなたのボタンの例のすべて

bool [] buttonClicked = new bool [9]; 

ためboolean配列を保つことができます配列値を偽にする

for(int i=0;i<9;i++) 
{ 
    buttonClicked[i]=false; 
} 

希望すると、

0

各四角形には、ラベルとボタンを配置できます。ボタンが押されると、それ自身が隠され(Visibleをfalseに設定)、ラベルが表示されます(もう一度Visibleプロパティを設定します)。ラベルのテキストは、OまたはXのいずれかに設定できます。

関連する問題