3

私は持っています:

  • テキストボックス(複数行)
  • パネル
  • パネル内のさまざまなコントロール(ボタン、テキストボックス)

シナリオ:

マウスがパネルのスコープ内またはパネルの領域内にあるときにテキストボックスにテキストを追加し、パネルにフォーカスしていないときにテキストボックスを再度クリアする必要があります。私はこの効果のためにイベントを使用MouseHoverしました。MouseLeave問題は、パネル内のコントロールにフォーカスすると、マウスがパネル内のフォーカスを失ったように見え、MouseLeaveイベントを呼び出すことです。

マウスがパネルのスコープ内にあるときにイベントを追加する方法はありますか?

4

1 に答える 1

4

パネルのを使用してMouseLeave、マウスの位置が実際にパネルの表面にないかどうかを確認できます。

 private void panel_MouseLeave( object sender, EventArgs e ) {
      Point mouseposition = this.PointToClient( MousePosition ); // to calculate the mouseposition related to the form (keyword this)

      //If the mouse isn't into the panel surface...
      if (!(mouseposition.X > panel1.Location.X && mouseposition.Y > panel1.Location.Y && mouseposition.X <  panel.Location.X + panel1.ClientSize.Width  && mouseposition.Y <  panel1.Location.Y + panel.ClientSize.Height) )
          textbox.Clear();
 }
于 2012-06-19T18:09:30.953 に答える