private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
YUlt = YUlt - (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour);
break;
case Keys.Down:
YUlt = YUlt + (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour);
break;
case Keys.Left:
XUlt = XUlt - (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour);
break;
case Keys.Right:
XUlt = XUlt + (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour);
break;
}
これで、キーボードで円を描画するwinformアプリケーションを作成しようとしています。このプログラムはNAITによって作成されたGDIDrawerインターフェイスを使用しますが、この質問を知ることは重要ではありませんので、Draw.AddEllipseについて心配しないでください。同時に2つのキーを押したとき
上記のスイッチケースは、赤い点を描くのに完全に問題なく動作しますが、次のif文が機能するはずのことは、ユーザーがF1キーを押しながら矢印キーを押すと、その周りに白い枠線があります。
if (Keys.F1 && (Keys.Down || Keys.Up || Keys.Left || Keys.Right))
{
switch (e.KeyCode)
{
case Keys.Up:
YUlt = YUlt - (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour, 2, Color.White);
break;
case Keys.Down:
YUlt = YUlt + (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour, 2, Color.White);
break;
case Keys.Left:
XUlt = XUlt - (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour, 2, Color.White);
break;
case Keys.Right:
XUlt = XUlt + (PDiff + 10);
Draw.AddEllipse(XUlt, YUlt, 20, 20, Colour, 2, Color.White);
break;
}
}
私が知っておく必要があるのは、ユーザーが、彼らは、矢印キーを押したときのドットに境界を与えるためにF1キーを押したままにすることができていること、それを作成する方法ですが、F1が押された場合は、プログラムはまだかかわらず、点を打つ
待機します。 ...私は矢印を押すと、私はf1を押して、ドットを描くときに点を描画したいですか? f1が押されていない場合は点を描画しますか?なぜf1を使用してもf1のポイントは何ですか?私はそれを得ることはありません –
F1を押してもプログラムは点を描画します。F1を押したままにすると境界線が点の周りにくるでしょう – user7115764