我对 C# 比较陌生,我正在尝试使用一个包含 5 个选项卡页的选项卡控件。这些标签页在需要时显示和隐藏,我可以将页面重新添加到所需位置,例如 tabPage 2 应该通过传入与我希望它出现的位置相关的数字在 tabPage1 和 tabPage3 之间重新添加,并且交换页面。如何存储 tabPages 的原始位置,然后只说 tabPage2 应该添加到 tabPage2 的存储位置?
提前感谢您的帮助。
我对 C# 比较陌生,我正在尝试使用一个包含 5 个选项卡页的选项卡控件。这些标签页在需要时显示和隐藏,我可以将页面重新添加到所需位置,例如 tabPage 2 应该通过传入与我希望它出现的位置相关的数字在 tabPage1 和 tabPage3 之间重新添加,并且交换页面。如何存储 tabPages 的原始位置,然后只说 tabPage2 应该添加到 tabPage2 的存储位置?
提前感谢您的帮助。
您可以将原始位置存储在 Tag 属性中。需要一些逻辑,因为可能不存在第 1 页和第 3 页。这应该很接近:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
for (int page = 0; page < tabControl1.TabCount; ++page)
tabControl1.TabPages[page].Tag = page;
}
private List<TabPage> hiddenPages = new List<TabPage>();
public void ShowTab(TabPage page) {
int pos = (int)page.Tag;
int insertPoint;
for (insertPoint = 0; insertPoint < tabControl1.TabCount; ++insertPoint) {
if (pos <= (int)tabControl1.TabPages[insertPoint].Tag) break;
}
tabControl1.TabPages.Insert(insertPoint, page);
hiddenPages.Remove(page);
}
}