那么伙计们,是否可以通过NEXT按钮切换到另一个标签?
这意味着您无法通过单击其他选项卡切换到其他标签页。
我通常在NEXT按钮上使用的代码是这样的:
tabControl1.SelectedTab = tabPage2;
答案 0 :(得分:6)
TabControls Selecting
事件将禁用切换,但我们需要跟踪具有click
值的按钮bool
,否则按钮的click
将不会选择该标签。
bool checkCancel = true;
private void button2_Click(object sender, EventArgs e)
{
checkCancel = false;
tabControl1.SelectTab("tabPage2");
}
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
e.Cancel = checkCancel;
checkCancel = true;
}
结果,(顺便说一下,试图点击gif上的标签页):)
希望有所帮助,
答案 1 :(得分:2)
试试这个
tabControl1.SelectTab(tabPage2);
索引
tabControl1.SelectTab(1);
Tablist是基于0的索引,因此“1”是第二个选项卡。
答案 2 :(得分:1)
您可以将using System.Linq;
using System.Windows.Forms;
using System.ComponentModel;
public class MyTabControl : TabControl
{
public MyTabControl()
{
if (LicenseManager.UsageMode != LicenseUsageMode.Designtime)
SetStyle(ControlStyles.UserMouse, true);
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
var filteredKeys = new Keys[]{(Keys.Control | Keys.Tab),
(Keys.Control | Keys.Shift | Keys.Tab),
Keys.Left, Keys.Right, Keys.Home, Keys.End};
if (filteredKeys.Contains(keyData))
return true;
return base.ProcessCmdKey(ref msg, keyData);
}
}
设置为true。这样您就可以在标签页上禁用鼠标。
顺便说一句,只是禁用点击标题是不够的,您需要禁用允许用户切换到标签之间的键,例如 Shift + Tab , Ctrl + Shift + Tab ,←,→, Home < / kbd>和结束。
TCM_ADJUSTRECT
注意:如果您希望拥有类似向导的控件(不带标题的标签控件),则可以像this那样处理using System.Linq;
using System.Windows.Forms;
using System.ComponentModel;
public class WizardControl: TabControl
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
var filteredKeys = new Keys[]{(Keys.Control | Keys.Tab),
(Keys.Control | Keys.Shift | Keys.Tab),
Keys.Left, Keys.Right, Keys.Home, Keys.End};
if (filteredKeys.Contains(keyData))
return true;
return base.ProcessCmdKey(ref msg, keyData);
}
public const int TCM_FIRST = 0x1300;
public const int TCM_ADJUSTRECT = (TCM_FIRST + 40);
protected override void WndProc(ref Message m)
{
if (m.Msg == TCM_ADJUSTRECT && !DesignMode)
m.Result = (IntPtr)1;
else
base.WndProc(ref m);
}
}
。您也应该在该解决方案中禁用这些密钥。这是一个更改版本:
{{1}}
答案 3 :(得分:0)
其中一种选择是尝试简单的IsHitTestVisible="False"