0
단일 동작을 수행하기 위해 KeyDown-Event (KeyCode를 사용하고 있기 때문에)를 사용하려고합니다. 이 목적을 위해 나는 연속 동작을 멈추기 위해 bool 변수를 사용하고 있습니다.단일 동작에 대해 KeyDown 이벤트 사용
하지만 내 코드 문제, 그리고 유사한 문제/솔루션 아직 발견하지 않았습니다 알아낼 수 없습니다 ...
이 내을 TabControl 2 개 탭이와 나는 사이를 전환 할 수 있도록하려면 CTRL + TAB을 사용합니다. 전환은 탭의 keydown에서 발생합니다.
bool tabSwitchPossible = true;
void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab)
tabSwitchPossible = true; //Reset boolean
}
void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (tabSwitchPossible && e.KeyCode == Keys.Tab && e.Modifiers == Keys.Control)
{
tabSwitchPossible = false; //Set boolean to prevent further action
if (mainTabControl.SelectedIndex >= mainTabControl.TabCount - 1)
mainTabControl.SelectedIndex = 0;
else
mainTabControl.SelectedIndex++;
return;
}
}
키를 놓지 않아도 자동 KeyUp 이벤트가 발생합니까?! 사전들에서
감사합니다 ... 당신은 Form1_KeyUp 및 tabSwitchPossible varible 처리를 제거하고 바로 다음 코드를 복사 할 필요가 없습니다
내 정확한 첫 번째 시도였다. .. 처음 두 버튼을 누르면 작동했습니다. (단 한번 - 매 달리다) 그러면 더 이상 작동하지 않습니다. 그래서 나는 keyUp과 bool을 추가했다. – Toastgeraet
언제나 나를 위해 일하고 있습니다. 키를 누르는 동안 초점이 응용 프로그램에 있는지 확인하십시오. –
글쎄, 내가 정확히 3 개의 탭이 3 개있는 경우 작동하는 것 같다. 그냥 뒤쪽으로 움직입니다. 그러나 3 개보다 많거나 적은 탭이있는 경우 무작위로 점프합니다. – Toastgeraet