たとえば300ミリ秒などの特定の期間に押されたキーストロークをキャプチャする必要があります。したがって、 「 a 」を押して300ミリ秒以内に「b」を押すと、文字列「ab」が必要になります。しかし、 「 b」を300ミリ秒押した後にキー「 c 」を押すと、「c」が必要になります。
すばやく押したキーで始まるDataGridViewのセルにすばやくジャンプするためにこれが必要です。
たとえば300ミリ秒などの特定の期間に押されたキーストロークをキャプチャする必要があります。したがって、 「 a 」を押して300ミリ秒以内に「b」を押すと、文字列「ab」が必要になります。しかし、 「 b」を300ミリ秒押した後にキー「 c 」を押すと、「c」が必要になります。
すばやく押したキーで始まるDataGridViewのセルにすばやくジャンプするためにこれが必要です。
あなたの質問を完全に理解できるかどうかはわかりませんが、2つのキーが押された場合は1つのコードブロックを実行し、3つのキーが押された場合は別のコードブロックを実行する方法が必要だと思います。さらに、各キーの押下が互いに300ミリ秒以内にあるようにします。私が理解していれば、このコードはあなたが望むことをするはずです:
private System.Diagnostics.Stopwatch Watch = new System.Diagnostics.Stopwatch();
private string _KeysPressed;
public string KeysPressed
{
get { return _KeysPressed; }
set
{
Watch.Stop();
if (Watch.ElapsedMilliseconds < 300)
_KeysPressed += value;
else
_KeysPressed = value;
Watch.Reset();
Watch.Start();
}
}
private void KeyUpEvent(object sender, KeyEventArgs e)
{
KeysPressed = e.KeyCode.ToString();
if (KeysPressed == "AB")
lblEventMessage.Text = "You've pressed A B";
else if (KeysPressed == "ABC")
lblEventMessage.Text = "You've pressed A B C";
else
lblEventMessage.Text = "C-C-C-COMBOBREAKER!!!";
}
このコードは、ラベル、lblEventMessage、およびKeyUpイベントをトリガーするものを想定しています(テキストボックスを使用しました)。