2

我认为 C# 很难。尝试在 stackoverflow 中发布问题。

我在用户控件中有一个列表框和一个按钮,它本身在一个选项卡控件的标签页中,它本身在一个表单上。单击按钮时,我需要从表单中填充列表框。

表单 > tabcontrol > tabpage > usercontrol > 列表框和按钮

那么,如何通知表单一个深埋的按钮已被单击,然后从表单中填充列表框(或从表单中调用用户控件来填充列表框)?

谢谢你们。

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
   }
}

对于人口:相同的模式,使用您的用户控件作为中介。在 userControl 上添加一个公共方法,该方法将填充 listBox 并从您的表单中调用它。

于 2013-10-03T07:56:45.533 回答