gpt4 book ai didi

c# - 动态添加和删除 UserControl

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:29 33 4
gpt4 key购买 nike

我有 UserControl,其中包含 Infragistics Graph 控件。在 TreeView 子节点的右键单击上,我将上下文菜单设置为“创建图形”。这将创建新图形。这就是我要做的事情。

我对使用什么布局感到困惑。无论是 FlowLayoutPanel 还是 TableLayoutPanel 还是其他任何东西。如果只添加一个图形 --> 图形必须占据完整形式。如果两个图相加 --> 两个图的要分割空间等等。这只是一个接一个的格式。即第一张图在顶部,第二张图在第一张图下方……依此类推。

如果手动更改 UserControl,它应该不会影响我们显示的大小。

这是 WinForm。目前我使用 FlowLayoutPanel,我创建了具有恒定大小的面板并添加了带有 DockStyle.Fill 的 UserControl。然后我将面板添加到 FlowLayoutPanel。

 GraphUserControl usr = new GraphUserControl();
usr.Dock = DockStyle.Fill;

Panel pnl = new Panel();

pnl.Controls.Add(usr);

flowLayoutpnl.Controls.Add(pnl);

执行此操作的最佳方法是什么?。

最佳答案

TableLayoutPanel 可能是您的最佳选择,因为行高可以设置为百分比值。

private void AddControl(Control ctl)
{
tableLayoutPnl.RowCount += 1;
tableLayoutPnl.RowStyles.Add(
new RowStyle(SizeType.Percent, 100F / tableLayoutPnl.RowCount));
ctl.Dock = DockStyle.Fill;
tableLayoutPnl.Controls.Add(ctl, 0, tableLayoutPnl.RowCount - 1);
foreach (RowStyle rs in tableLayoutPnl.RowStyles)
{
rs.Height = 100F / tableLayoutPnl.RowCount;
}
}

然后您可以按如下方式调用它:

GraphUserControl usr = new GraphUserControl();
AddControl(usr);

关于c# - 动态添加和删除 UserControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/677424/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com