gpt4 book ai didi

c# - 为什么我的控件在以编程方式添加到选项卡时不显示

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:19 24 4
gpt4 key购买 nike

我有一个从数据库读取的应用程序。对于数据库中的每个元组,我的 WinForm 应用程序创建一个新面板,然后用动态创建的标签填充各种信息。然后偏移该位置并创建下一个面板。我被告知我现在需要我的应用程序支持选项卡。每个选项卡只会显示那么多面板。当我尝试将这些动态创建的面板添加到选项卡控件而不是 this.control 时,我的问题就出现了。当我这样做时,面板及其信息不再被绘制,我不知道如何让面板显示。

private void Form1_Load(object sender, EventArgs e)
{

panel = new Panel();
panel.Location = position;
panel.BorderStyle = BorderStyle.Fixed3D;
panel.Width = 240;
panel.Height = 210;

company = new Label();
company.Location = new Point(panel.Location.X + 10, panel.Location.Y + 10);
company.Text = tempServer.Value.companyName;
company.Font = new Font(company.Font.FontFamily, 12, FontStyle.Bold);

tabs.TabPages["1"].Controls.Add(company);
this.Controls.Add(panel);
this.Controls.Add(tabs);
this.Controls.SetChildIndex(tabs, this.Controls.Count);
}

更新:我决定尝试一下。我还原了 This.Controls.add(control); 添加的所有控件;所有面板再次显示。然后我创建了标签 someLabel = new Label();someLabel.Text = "一些文本"; 然后我将它添加到选项卡中,当我这样做时所有面板再次消失

解决方案问题是我引用了标签页名称,当我使用索引位置时它工作正常并且我的面板现在正在显示

最佳答案

假设窗体的尺寸没问题,并且窗体有一个名为“tabs”的选项卡控件,下面的代码应该可以工作。:

private void Form1_Load(object sender, EventArgs e)
{
// create the panel
var panel = new Panel();
panel.Location = new Point(100, 100);
panel.BorderStyle = BorderStyle.Fixed3D;
panel.Width = 240;
panel.Height = 210;

// create a label
var company = new Label();
company.Location = new Point(panel.Location.X + 10, panel.Location.Y + 10);
company.Text = "Company";

// add the label into panel
panel.Controls.Add(company);

// add the panel into the first tab page of the tab control
tabs.TabPages[0].Controls.Add(panel);
}

关于c# - 为什么我的控件在以编程方式添加到选项卡时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20056284/

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