gpt4 book ai didi

c# - 如何在 Windows 窗体中动态加载面板?

转载 作者:行者123 更新时间:2023-11-30 14:04:16 24 4
gpt4 key购买 nike

winform 的顶部有一些按钮,当我点击其中一个按钮时,下面的面板将加载不同的预定义面板,我该如何实现?

请看这个例子:

enter image description here

最佳答案

这是一个使用标准 WinForms TabControl 的解决方案,其中选项卡在运行时隐藏,但当然它们在设计时可用。

假设:

  1. 您不想开始创建 OwnerDrawn 标签,这是可能的。

  2. 标准的 WinForms TabControl 将满足您所有的设计时需求。

代码:

  1. 在托管 TabControl 的表单的表单加载事件中使用如下代码:

    tabControl1.Region = new Region(tabControl1.DisplayRectangle);

    隐藏选项卡。

  2. 然后,“连接”您的按钮以处理在 TabControl 中选择不同的 TabPage。显然你可以用比这更优雅的方式来做到这一点:

    private void button1_Click(object sender, EventArgs e)
    {
    tabControl1.SelectedTab = tabControl1.TabPages[0];
    }

    private void button2_Click(object sender, EventArgs e)
    {
    tabControl1.SelectedTab = tabControl1.TabPages[1];
    }

注意:如果您想将辅助窗体或用户控件插入到 TabControl 的 TabPages 中:这不是问题:当然使用 UserControls 更简单。将它们插入到每个 TabPage 的 Controls 集合中,并将它们的“Dock 属性”设置为“DockStyle.Fill”。

注意:有更高级的方法可以隐藏选项卡,例如使用派生的 TabControl,如 CodeProject 上所示:TabControl on a WinForm without showing the Tab header?还有其他使用修改后的 WndProc 的解决方案。它们并不难找。

关于c# - 如何在 Windows 窗体中动态加载面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349592/

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