私はMicrosoft Visual Studio 2013を使用しており、C#で記述しています。私はTabControlクラスの子孫を書いて、OnClickメソッドをオーバーライドしてから、既存のTabControlエレメントを新しいクラスを使用するように変更しました。すべてがコンパイルされて実行されますが、コンストラクタのブレークポイントに達しましたが、OnClickオーバーライドを使用していません!ここにTabControlの子孫コードがあります。何か助けてくれてありがとう!Override c#TabControl OnClickが呼び出されない
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LumaSense.Imaging.Calibration.UI
{
public partial class TabControlModified : TabControl
{
public TabControlModified()
{
InitializeComponent();
}
private bool superuser;
public int lastTabSelectedIndex = 0;
public bool Superuser
{
get { return superuser; }
set { superuser = value; }
}
public int LastTabSelectedIndex
{
get { return lastTabSelectedIndex; }
set
{ this.lastTabSelectedIndex = value; }
}
protected override void OnClick(EventArgs e)
{
// SelectedIndex and tab have already changed before we get here
if (this.superuser == false)
{
if (this.SelectedIndex <= this.lastTabSelectedIndex)
{
this.LastTabSelectedIndex = this.SelectedIndex;
base.OnClick(e);
}
else
{
base.OnClick(e);
this.SelectedIndex = lastTabSelectedIndex;
}
}
else
{
this.LastTabSelectedIndex = this.SelectedIndex;
base.OnClick(e);
}
}
}
}
このカスタムタブコントロールをインスタンス化するとき、コントロールにページを追加していますか?ページがない限り、クリックしたときにOnClickメソッドよりもトリガされるタブは表示されません。 – Mikanikal