[英]c# .NET - Tabpage margin
我有一个带有3个选项卡的选项卡控件。 我需要在第一个标签页上添加一个左边距(因此将所有标签页向右移动200px)。 我该怎么做??
使用Visual Studio 2008 / C#
编辑再读一遍,我认为您是在寻找每个页面上的控件都在选项卡的右侧,而不是移动按钮。
正如汉斯(Hans)所言,小组讨论是最简单的方法。 但这并不漂亮。
private void Form1_Load(object sender, EventArgs e)
{
// Create spacer tab with a name long enough to reach the 200px mark
TabPage spacer = new TabPage("..............................................................");
tabControl1.TabPages.Insert(0, spacer);
// Create a panel at the same location of the tab control.
Panel spacerBlock = new Panel();
spacerBlock.Name = "spacer";
spacerBlock.Location = tabControl1.Location;
spacerBlock.Width = 198;
spacerBlock.Height = 20;
this.Controls.Add(spacerBlock);
spacerBlock.BringToFront();
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
// Ensure the user can't use the keyboard to somehow select the spacer tab.
if (tabControl1.SelectedIndex == 0)
tabControl1.SelectedIndex = 1;
// Check if the second (first I guess) tab is selected and adjust the panel to keep the look consistant.
if (tabControl1.SelectedIndex == 1)
this.Controls["spacer"].Width = 198;
else
this.Controls["spacer"].Width = 200;
}
您需要确保用户无法通过键盘快捷键选择选项卡,从而无法检查索引更改。
还要注意,如果由于3d GUI效果而选择了第二个(在您的情况下为第一个)选项卡,则必须调整面板的宽度。
老实说,考虑到最终用户的外观设置以确保间隔标签的文本和面板宽度正确的长度并不能真正弥补IMHO的麻烦。
我能想到的唯一其他选项是高度为16px的选项卡面板。 同样,这必须根据最终用户的外观设置进行调整,更不用说使所有功能正常工作的额外开销。
如果是AjaxControlToolkit选项卡控件,请添加以下CSS类:
.TabContainer .ajax__tab_header
{
padding-left: 200px;
}
您将需要一种解决方法,因为无法移动标签页。 您可能想在选项卡页面中放置一个分组框,然后可以根据需要在该分组框内添加所有控件...
// tabPage 1
this.tabPage1.Controls.Add(this.groupBox1);
// groupBox1
this.groupBox1.Location = new System.Drawing.Point(200,6);
this.groupBox1.Controls.Add(this.textBox1);
this.groupBox1.Controls.Add(this.AnyControls); //etc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.