(789電話機のキーボードと下段の一番上の行です)それらを生成し、右キー文字:追跡する
Dictionary<char, char[]> map = new Dictionary<char, char[]>()
{
{'1', num1},
{'2', num2}
};
いくつかの変数:
char[] curr = null;
char currChar = '-';
int index = 0;
印刷機能:
void Print()
{
Console.WriteLine(curr[index]);
}
とロジックは:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (map.ContainsKey(e.KeyChar))
{
if (curr == null || e.KeyChar != currChar)
{
curr = map[e.KeyChar];
index = 0;
currChar = e.KeyChar;
Print();
}
else
{
++index;
if (index == curr.Length)
index = 0;
Print();
}
}
}
ロジックは基本的に私たちのキーマップが問題のキーコードが含まれていることを確認するチェックします。何も追跡していない場合や、現在追跡しているものと異なる場合は、その特定の地図と最初の指標を使用します。
それ以外の場合は、リピートキーを押した場合は、インデックスを増やしてください(最後を渡すと最初に戻ります)。
私はそれをあなたが別の手紙を得るために何度かキーを押す標準的な電話スタイルのキーパッドを意味しますか?これはシステム全体のことですか、またはあなたのアプリケーションのためだけですか? – Polynomial
私のアプリケーションのために、それはプロジェクトのための簡単な電話ネットワークシミュレータです –