我想在 c sharp windows 窗体上动态添加按钮。按钮的数量应该等于数据表中可用的记录数量,我想显示单击其按钮的记录。有人可以帮助我吗?
问问题
3229 次
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 回答