2

C#は難しいと思いました。stackoverflow に質問を投稿してみてください。

ユーザーコントロールにリストボックスとボタンがあり、それ自体がタブコントロールのタブページにあり、フォームにあります。ボタンがクリックされたときに、フォームからリストボックスにデータを入力する必要があります。

フォーム>タブコントロール>タブページ>ユーザーコントロール>リストボックスとボタン

では、深く埋もれたボタンがクリックされたことをフォームに通知し、フォームからリストボックスに入力する (またはフォームからユーザーコントロールを呼び出してリストボックスに入力する) にはどうすればよいでしょうか。

君たちありがとう。

4

1 に答える 1

4

あなたの質問がWinFormsに関するものであると仮定します。

通知の場合: userControl でイベントを公開し、それをボタンのイベントにリンクします。フォームはそれが子であることを認識します。

public class MyUserControl {
    private Button myButton;
    public event EventHandler MyControlButtonClicked;

    public MyUserControl() {
         ...
         myButton.Click += OnMyButtonClicked;
    }

    private void OnMyButtonClicked(object sender, EventArgs arguments) {
        if (MyControlButtonClicked != null) {
           MyControlButtonClicked(this, arguments);
        }
    }
}

あなたのフォームで:

public class MyForm {
   private MyUserControl userControl;

   public MyForm() {
     ...
     userControl.MyControlButtonClicked += OnUserControlButtonClicked;
   }

   private void OnUserControlButtonClicked(object sender, EventArgs arguments) {
      // handle the button click here
   }
}

人口の場合: 同じパターンで、ユーザー コントロールをメディエーターとして使用します。listBox の入力を行う public メソッドを userControl に追加し、フォームから呼び出します。

于 2013-10-03T07:56:45.533 に答える