2
是否可以處理TabControl
分頁按鈕的點擊事件?當合並的tabHeader
寬度超過控件的寬度時,會出現按鈕。處理TabControl中的DownClick分頁按鈕OnClick事件
我想重繪整個控制,如果單擊之一。
是否可以處理TabControl
分頁按鈕的點擊事件?當合並的tabHeader
寬度超過控件的寬度時,會出現按鈕。處理TabControl中的DownClick分頁按鈕OnClick事件
我想重繪整個控制,如果單擊之一。
您可以添加自己的事件來處理該事件。從TabControl event when scrolling through tab headers:
public class TabConrolEx : TabControl {
public event ScrollEventHandler Scrolling;
private const int WM_HSCROLL = 0x114;
private int oldValue = 0;
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if (m.Msg == WM_HSCROLL) {
this.OnScrolling(new ScrollEventArgs(((ScrollEventType)LoWord(m.WParam)),
oldValue, HiWord(m.WParam), ScrollOrientation.HorizontalScroll));
}
}
protected void OnScrolling(ScrollEventArgs e) {
if (Scrolling != null) {
Scrolling(this, e);
}
if (e.Type == ScrollEventType.EndScroll) {
oldValue = e.NewValue;
}
}
private int LoWord(IntPtr dWord) {
return dWord.ToInt32() & 0xffff;
}
private int HiWord(IntPtr dWord) {
if ((dWord.ToInt32() & 0x80000000) == 0x80000000) {
return (dWord.ToInt32() >> 16);
} else {
return (dWord.ToInt32() >> 16) & 0xffff;
}
}
}
如果您使用此TabControl的在您的形式,一個「滾動」事件將可用。
謝謝,此工作正常。 – Samo
我更新了問題以顯示我的意思。 – Samo
您也可以在「TabControl」的「SelectedIndexChanged」事件上註冊以進行重繪。 – KBO
當用戶點擊一個按鈕時,SelectIndexChanged不會觸發,因爲活動選項卡不會更改 – Samo