0

我想在 c sharp windows 窗体上动态添加按钮。按钮的数量应该等于数据表中可用的记录数量,我想显示单击其按钮的记录。有人可以帮助我吗?

4

2 回答 2

3

在您的情况下,您需要创建将在 UI 上表示您的项目记录的用户控件,创建在此用户控件中支持您的项目和公共事件的构造函数,并像这样添加到您的容器中。

myPanel.Controls.Add(new ItemRecordUserControl(item));

可能您需要使用一些特定的容器而不是常规面板,例如 System.Windows.Forms.FlowLayoutPanel.

用户控件将如下所示:

public partial class ItemRecorUserControl : UserControl
{
    public event EventHandler<EventArgs> ActionButtonClicked;

    public void OnActionButtonClicked(object sender, EventArgs e)
    {
        if (this.ActionButtonClicked != null)
            this.ActionButtonClicked(sender, e);
    }

    public ItemRecorUserControl()
    {
        InitializeComponent();
    }

    public ItemRecorUserControl(ItemRecord item) : this()
    {
        // fill item data here to controls
    }

    private void btnAction_Click(object sender, EventArgs e)
    {
        this.OnActionButtonClicked(sender, e);
    }
}
于 2012-08-13T06:39:04.670 回答
1

你可以像这样添加按钮:

for (int i = 0; i < YourDataTableItemsCount; i++)
   {
       Button b = new Button();
       b.Left = //Calculate Left
       b.Top = //Calculate Top
       b.Parent = this; 
       //Or
       this.Controls.Add(b);
   }
于 2012-08-13T06:41:25.100 回答