1

以下のコードは a からのものでSystem.Windows.Forms.UserControl、正常に動作します。これは、他の UserControls と共に、タブ ページ (それ自体がユーザー コントロール) に含まれています。ユーザーは、別のタブをクリックし、何らかの操作を行ってから、このタブ ページに戻ることで、このタブ ページをクリックすることができます。「何らかの操作」には、このコントロールが表示しているデータの変更が含まれる場合があります。ただし、クリックして戻ると、OnLoad()このコントロールまたはその親のメソッドは呼び出されOnViewReady()ないため、呼び出されず、コントロールは更新されません。元のタブ ページに戻るクリックをキャプチャするには、どのイベントを使用しますか?

protected override void OnLoad (System.EventArgs e)
{
    if (this._presenter != null)
    {
        this._presenter.OnViewReady();
    }
    base.OnLoad (e);
}

UserControl のドキュメントにはメソッドがありませんOnShown
GotFocusコントロールを更新するには、ユーザーがコントロールをクリックする必要があります。

4

2 に答える 2

0

答えは、使用することであることが判明しましたOnRefresh()

public override void Refresh()
{
this.myBindingSource.ResetBindings (false);
base.Refresh();
}

于 2013-10-29T18:36:57.810 に答える
0

イベントはOnLoad、オブジェクトが最初に作成されたときにのみ発生します

Load イベントは、コントロールが作成された後、コントロールが初めて表示される前に発生します。

フォーカスを変更したときではありません。ユーザーが TabConrol でタブを選択するたびに何かを実行したい場合は、別のイベントを使用できます。 TabIndexChangedあなたの最良の選択肢のようGotFocusに見えます。同様に見るべきものかもしれません。

フォーカス イベントは次の順序で発生します。

  • 入る
  • フォーカスを得た
  • 離れる
  • 検証中
  • 検証済み
  • ロストフォーカス
于 2013-10-23T21:25:42.277 に答える