Microsoft.Xna.Framework.Input.KeyboardStateを用いてキーの状態を取得します。(System.Windows.Input.Keyboardを用いたキー状態の取得は
こちら)
準備
XNAのアセンブリを参照するためにはXNA Framework (Microsoft XNA Game Studio 4.0)をインストールする必要があります。Microsoft XNA Game Studio 4.0はWindows Phone SDK 7.1に含まれているため、これをダウンロードし、インストールします。
参照の追加
Winformアプリケーションを新規作成します。
ソリューションエクスプローラの[参照設定]ノードを右クリックしポップアップメニューを表示します。ポップアップメニューの[参照の追加]メニューを選択します。
[参照の追加]ダイアログでMicrosoft.Xna.Framework.dllを選択します。
[参照設定]ノードに"Microsoft.Xna.Framework"が追加されます。
コード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Xna.Framework.Input;
using Keys = Microsoft.Xna.Framework.Input.Keys;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Application.Idle += new EventHandler(Application_Idle);
}
private void Application_Idle(object sender, EventArgs e)
{
KeyboardState newstate = Keyboard.GetState();
if (newstate.IsKeyDown(Keys.Left) == true) {
label1.Text = "左キーが押されています。";
}
else {
label1.Text = "なし";
}
if (newstate.IsKeyDown(Keys.Right) == true) {
label2.Text = "右キーが押されています。";
}
else {
label2.Text = "なし";
}
}
}
}
UI
下図のUIを準備します。フォームにラベルを2つ配置します。
実行結果
アプリケーションを実行します。
左キーを押します。Label1にキーが押された旨のメッセージが表示されます。
左キーを離します。Label1のメッセージが"なし"に変わります。右キーを押します、Label2にキーが押された旨ののメッセージが表示されます。
右キーと左キーを同時に押します。Label1,Label2ともにキーが押された旨のメッセージが表示されます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-06
作成日: 2012-02-11