groupBox 切换标签页时判断下是否能切换的问题
问个winform 开发的问题我想在用groupBox 这个控件的时候 切换标签页时判断下是否能切换 能做吗
就是比如没有满足一个条件 就不让点第二个标签页
有人会吗 找了半天 也没找到合适的属性或事件
--------------------编程问答-------------------- groupBox有标签页?你说的是tabcontrol吧? --------------------编程问答-------------------- 同楼上。一定是在说TabControl --------------------编程问答-------------------- 对对 是TabControl说错了,不好意思 --------------------编程问答-------------------- 没找到控件自带的什么方法或属性,自己想了个折,弄好了 发出来给大家参考下
--------------------编程问答-------------------- 要补上在控件初始化的时候
/// <summary>
/// 当前Tab索引
/// </summary>
private int TabControlIndex = 0;
/// <summary>
/// Tab集合验证通过标识
/// </summary>
private Hashtable HtTabsValidate = new Hashtable();
private void tCTYBM_SelectedIndexChanged(object sender, EventArgs e)
{
if (TabControlIndexCanChanged(tCTYBM.SelectedIndex))
{
TabControlIndex = tCTYBM.SelectedIndex;
}
else
{
if (tCTYBM.SelectedIndex != TabControlIndex)
{
tCTYBM.SelectedIndex = TabControlIndex;
MessageBox.Show("请先完成" + tCTYBM.TabPages[TabControlIndex].Text);
}
}
}
#region 私有类
private bool TabControlIndexCanChanged(int currentTabIndex)
{
if (currentTabIndex == 0)
return true;
for (int tabIndex = 0; tabIndex < currentTabIndex; tabIndex++)
{
if (!Convert.ToBoolean(HtTabsValidate[tabIndex]))
{
return false;
}
}
return true;
}
//令所有选项卡验证通过标识全为false
for (int tabIndex = 0; tabIndex < tCTYBM.TabPages.Count; tabIndex++)
{
HtTabsValidate[tabIndex] = false;
}
然后在每次通过验证后将对应的键值置为true即可 --------------------编程问答--------------------
--------------------编程问答--------------------
private void tabControl_Selecting(object sender, TabControlCancelEventArgs e)
{
if (条件)
{
e.Cancel = true;
}
}
多谢,这个事件不错,这样效果更好了 --------------------编程问答--------------------
补充:.NET技术 , C#