2
TabControl
ページングボタンのクリックイベントを処理することは可能ですか?組み合わせたtabHeader
の幅がコントロールの幅を超えると、ボタンが表示されます。TabControlのUpClickイベントを処理する
私は1つをクリックすると、全体の制御を再描画したいと思います。
TabControl
ページングボタンのクリックイベントを処理することは可能ですか?組み合わせたtabHeader
の幅がコントロールの幅を超えると、ボタンが表示されます。TabControlのUpClickイベントを処理する
私は1つをクリックすると、全体の制御を再描画したいと思います。
これを処理する独自のイベントを追加できます。
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のを使用する場合は、「スクロール」イベントが使用可能になります:TabControl event when scrolling through tab headersから。
ありがとうございます。 – Samo
私は何を意味するかを示すために質問を更新しました。 – Samo
再描画の目的で、 'TabControl'の' SelectedIndexChanged'イベントに登録することもできます。 – KBO
アクティブなタブが変更されないため、ユーザーがボタンをクリックしたときにSelectIndexChangedが発生しません – Samo