này sẽ chọn các trang tab trong khi vẫn giữ sự tập trung trên đầu, như hỏi ở đây trên:
tc.TabPages[0].Enabled = false;
tc.SelectTab(0);
tc.TabPages[0].Enabled = true;
tc là ở đây ví dụ của tôi cho TabControl loại (tức là nó là kiểm soát tab của tôi, và nó có một vài "trang tab"). Điều này làm việc đúng cho tôi. Mục đích của tôi là lặp qua các trang tab này bằng các phím Trái và Phải (arrows)
i. e. khi tôi đi tới (Key.Right
) và đạt đến số tabpage
cuối cùng tôi muốn tập trung vào [0]
mà không kích hoạt DataGridView mà tôi có trong trang đó và khi tôi quay lại (bằng Key.Left
) và đạt đến [0]
Tôi muốn có [tc.TabCount - 1] được bật, đây là phiên bản cuối cùng. Mã cho trường hợp này là:
tc.TabPages[tc.TabCount - 1].Enabled = false;
tc.SelectTab(tc.TabCount - 1);
tc.TabPages[tc.TabCount - 1].Enabled = true;
các mảnh đầy đủ các mã là:
private bool KeyTc(System.Windows.Forms.Keys keyData)
{
if (keyData == K.Left && tc.SelectedIndex == 0)
{
tc.TabPages[tc.TabCount - 1].Enabled = false;
tc.SelectTab(tc.TabCount - 1);
tc.TabPages[tc.TabCount - 1].Enabled = true;
return true;
}
else if (keyData == K.Right && tc.SelectedIndex == tc.TabCount - 1)
{
tc.TabPages[0].Enabled = false;
tc.SelectTab(0);
tc.TabPages[0].Enabled = true;
return true;
}
return false;
}
này bool KeyTc
được trả lại cho một trường hợp trong một câu lệnh switch để đánh giá quan trọng trong việc:
protected override bool ProcessCmdKey(ref Message keyMsg, Keys keyData)
{ switch keyData { ... } }
Mặc dù tôi không nghĩ đây là giải pháp lý tưởng, ý tưởng này đã kết thúc hoạt động tốt nhất trong ứng dụng của tôi. Cảm ơn. – TheSean
Vui mừng được giúp đỡ :) – digEmAll
Tôi không chắc liệu giải pháp này có hoạt động trong mọi trường hợp hay không, xem [câu hỏi này] (http://stackoverflow.com/q/435433/806690). – tm1