0

btn1.Clickに次のものが必要です。

if (btn1.Enabled == false) System.Media.SystemSounds.Beep.Play();  

btn1が無効になっているのにビープ音を鳴らす方法はありますか?

実際、デフォルトで次のようなものが必要です。

foreach (controls c in Form1.Controls)
if (c is clicked && c.Enabled == false)
System.Media.SystemSounds.Beep.Play();
4

4 に答える 4

5

フォームにクリックイベントを追加して、クリックの位置にあるコントロールを取得できます。

private void Form1_Click(object sender, EventArgs e)
{
  var p = PointToClient(Cursor.Position);
  var c = GetChildAtPoint(p);
  if (c != null && c.Enabled == false)
    System.Media.SystemSounds.Beep.Play();
}
于 2012-06-20T11:02:57.593 に答える
1

ボタンが無効になっている場合、クリックイベントは受信されません。したがって、唯一の方法は、それを有効にし、カスタムフラグを使用して状態を保存することです。

于 2012-06-20T10:48:17.067 に答える
1

フォームのOnMouseClickイベント(MouseEventArgs eを受信)でこれを行うことはできません。

Control control = GetChildAtPoint(e.Location);

if (control != null)
{
}

そこから、いくつかの汚いことをして、コントロールタイプとその状態を取得し、必要に応じてビープ音を鳴らすことができます。とにかく、私はいつもビープ音を鳴らすアプリケーションを使いたくありません;-)

于 2012-06-20T10:56:23.610 に答える
1

コントロールを手動で無効にする場合は、ボタンを無効にする代わりに、ボタンのスタイルを無効に変更できます。クリックイベントでボタンのスタイルを確認します。その機能が必要な理由を説明できれば、私たちはもっと役立つかもしれません

于 2012-06-20T11:00:55.317 に答える