나는 이것을 어떻게하는지 잘 모릅니다.동시에 두 개의 키를 누를 때를 감지합니다.
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.C)
{
MessageBox.Show("C key");
}
}
나는 이것을 어떻게하는지 잘 모릅니다.동시에 두 개의 키를 누를 때를 감지합니다.
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.C)
{
MessageBox.Show("C key");
}
}
당신이를 keyDown /의 keyup 이벤트를 추적 할 수 있고, 현재 "아래"있는 모든 키의 목록을 유지 :
나는 하나의 키를 감지 않는 유일한 방법을 알고있다. 키보드 처리기는 개별 키에서만 트리거 할 수 있으며 코드가 다운되어 있는지 추적하고 해당 키 입력 이벤트가 서로 충분히 가까워서 "함께"계산되도록하는 것은 코드에 달려 있습니다.
두 개의 키가 눌려 졌는지 감지하려면 boolean 값이있는 타이머 이벤트를 사용할 수 있습니다. 여전히 다음 키를하지 않은 의미합니다 true로 설정되어있는 경우
bool keyup = false;
bool keyleft = false;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
keyup = true;
}
else if (e.KeyCode == Keys.Left)
{
keyleft = true;
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
keyup = false;
}
else if (e.KeyCode == Keys.Left)
{
keyleft = false;
}
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (keyleft && keyup)
{
Console.Beep(234, 589);
}
}
당신은
bool keyup = false;
bool keyleft = false;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
keyup = true;
}
else if (e.KeyCode == Keys.Left)
{
keyleft = true;
}
if (keyleft && keyup)
{
Console.Beep(234, 589);
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
keyup = false;
}
else if (e.KeyCode == Keys.Left)
{
keyleft = false;
}
}
'if (keyleft && keyup)'조건은'true'로 평가되지 않습니다. –
아래 다음 키에 부울을 설정 키를 백업에 되돌릴 타이머 XD가 필요하지 않습니다 해제되었습니다. – ThePower