我有一个自定义的 TabControl
,它有代码既可以防止用户使用 Tab 快捷方式进行导航,也可以删除标签标题。在某些情况下,我仍想阻止选项卡导航,但显示选项卡标题,因此我想到为自定义控件创建一个属性,并仅在此属性为 {{1} 时应用隐藏标题的代码,但我从这里得到了删除标签页头的解决方案,但我并不完全理解。
我尝试将代码放在带有我的属性的 true
中,但这会使我的 Visual Studio 崩溃。我想这是因为这样做我将在 if
时用空过程覆盖必要的代码,所以,当 useHide == false
运行常规继承代码而不是覆盖它时,我该如何做到这一点?
useHide == false
.NET 框架 4.7.2、Visual Studio 2019、Winforms 应用程序
答案 0 :(得分:0)
当 useHide
为 false 时,您缺少对基本方法的调用,请改用此方法。
protected override void WndProc(ref Message m)
{
// Hide the tab headers at run-time
if (useHide && m.Msg == TCM_ADJUSTRECT && !DesignMode)
{
m.Result = (IntPtr)1;
return;
}
// call the base class implementation
base.WndProc(ref m);
}