2009-09-15 6 views
6

簡単な質問:私はWinFormsボタンを持っていますが、非表示と非表示の両方にしたい(非表示のボタンが存在する場所でクリックすると、それがアクティブにならないようにします)。 button.Visible = falsebutton.Enabled = falseを意味するか、適切な時間に両方のプロパティを設定/リセットする必要がありますか?Winformsボタン:Visible = falseは、Enabled = falseを意味しますか?

+1

私は知っている、愚かな/怠惰な質問はありませんが、真剣に、なぜあなたはちょうど試していないのですか? :/ –

+2

とにかくボタンを無効にする必要があるのはなぜですか?基本的な機能を無効にするだけです(いくつかのフラグをテストするか、ボタンを無効にする必要があります)。こうすることで、たとえ愚かなユーザーがツールを使ってボタンを再表示したり、不可視で有効なボタンにウィンドウメッセージを送信したりしても、アプリケーションは実行してはいけないことはしません。つまり、機能を無効にする場合は、フロントドアだけでなく機能を無効にします。 – OregonGhost

答えて

5

コントロールが表示されない場合、コントロールは実質的に無効になります。表示された領域をクリックすると、イベントが発生することはありません。

編集:明確にするために、他の回答やコメントをもとに、ボタンがない無効と基本的なイベント機能は、まだプログラムで提供されていますが、ボタンはフォームとユーザーに見える/物理的に利用できなくなります(プログラマとして別のメソッドをプログラムで提供しない限り、)を使用することはできません。

+0

ボタンをアクティブにするためにマウスをクリックする以外の方法(キーボードなど)があります。私は彼の質問を読んで、マウスを介してアクセスできるだけでなく、ボタンを押す方法があるかどうかを尋ねてきました。 – recursive

+0

@再帰的:あなたのポイントは有効ですが、コントロールが隠れているときにフォーカスが失われ、再びフォーカスを得ることができないと思います。しかしこれは本当ではないかもしれませんが、私はニーモニックがどうなるか分かりません。しかし、それでもマウスやキーボードを使わずにボタンを押す方法があります。 UIオートメーションが思い浮かぶ。 – OregonGhost

1

[可視]を[偽]に設定すると、は無効になります。は[有効]プロパティを変更します。しかし、プロパティをfalseに設定すると、コントロールは効果的に存在しません。非表示のボタンが残っている空のスペースをクリックすると、ボタンのクリックイベントは発生しません。

+0

ありがとう、ジョエル。それは基本的に私が必要なものです。私は、ユーザーがそれをクリックできないようにする必要があります。 –

1

私はそれが無効であることを意味するとは思わない。コントロールがフォームに表示されないため、アクションを実行する方法がありません。 visibleプロパティをfalseに設定し、Clickイベントをコードで呼び出すと、処理されます。しかし、EnabledプロパティをFalseに設定した場合は、そうではないと想像します。

1

.Visible = falseの場合、 '_Click'アクションは無効になります。たとえば、コード内の.PerformClick()、および.Visible = trueの場合、_Clickが実行されます。 falseの場合、_Clickは実行されません。

関連する問題