using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace KeyEventEx {
public partial class KeyEventForm : Form {
//情報
private String keyEventInfo="なし";//キーイベント情報
private String keyPressInfo="なし";//キープレスイベント情報
private String mouseInfo ="なし";//マウスイベント情報
//ダブルバッファリング
private Image offImg;//オフイメージ
private Graphics g; //オフグラフィックス
//フォントとブラシ
private Font font; //フォント
private SolidBrush brush;//ブラシ
//コンストラクタ
public KeyEventForm() {
InitializeComponent();
//ダブルバッファリングの生成
offImg=new Bitmap(ClientSize.Width, ClientSize.Height);
g=Graphics.FromImage(offImg);
//フォントとブラシの生成
font =new Font("MS ゴシック",6,FontStyle.Regular);
brush=new SolidBrush(Color.Black);
}
//描画
protected override void OnPaint(PaintEventArgs pea) {
Draw();
}
//描画
private void Draw() {
//画面の描画
g.Clear(Color.White);
g.DrawString("キーイベント :"+keyEventInfo,font,brush,0,0);
g.DrawString("キープレスイベント:"+keyPressInfo,font,brush,0,20);
g.DrawString("ポインタイベント :"+mouseInfo, font,brush,0,40);
//画面に反映
Graphics gra=CreateGraphics();
gra.DrawImage(offImg,0,0);
gra.Dispose();
}
//キーダウンイベント
private void KeyEventForm_KeyDown(object sender,KeyEventArgs e) {
//キーコード
String keyCode=null;
switch (e.KeyCode) {
case Keys.D0 :keyCode="0"; break;
case Keys.D1 :keyCode="1"; break;
case Keys.D2 :keyCode="2"; break;
case Keys.D3 :keyCode="3"; break;
case Keys.D4 :keyCode="4"; break;
case Keys.D5 :keyCode="5"; break;
case Keys.D6 :keyCode="6"; break;
case Keys.D7 :keyCode="7"; break;
case Keys.D8 :keyCode="8"; break;
case Keys.D9 :keyCode="9"; break;
case Keys.Up :keyCode="上"; break;
case Keys.Down :keyCode="下"; break;
case Keys.Left :keyCode="左"; break;
case Keys.Right:keyCode="右"; break;
case Keys.Enter:keyCode="改行";break;
default: keyCode=""+e.KeyCode; break;
}
//修飾キー
String modifiers=null;
switch (e.Modifiers) {
case Keys.Shift :modifiers="シフト"; break;
case Keys.Control :modifiers="コントロール"; break;
case Keys.Shift|Keys.Control:modifiers="シフト+コントロール";break;
}
//表示
keyEventInfo="ダウン(キーコード="+keyCode;
if (modifiers!= null) keyEventInfo+=",修飾キー="+modifiers;
keyEventInfo+=")";
Draw();
}
//キーアップイベントの処理
private void KeyEventForm_KeyUp(object sender,KeyEventArgs e) {
keyEventInfo="なし";
Draw();
}
//キープレスイベントの処理
private void KeyEventForm_KeyPress(object sender,KeyPressEventArgs e) {
String keyChar=""+e.KeyChar;
if (e.KeyChar=='\t') keyChar="Tab";
if (e.KeyChar=='\b') keyChar="BS";
if (e.KeyChar=='\n'||e.KeyChar=='\r') return;
keyPressInfo="プレス(文字キー="+keyChar+")";
Draw();
}
//マウスダウンイベントの処理
private void KeyEventForm_MouseDown(object sender,MouseEventArgs e) {
mouseInfo="ダウン("+e.X+","+e.Y+")";
Draw();
}
//マウスムーブイベントの処理
private void KeyEventForm_MouseMove(object sender,MouseEventArgs e) {
mouseInfo="ムーブ("+e.X+","+e.Y+")";
Draw();
}
//マウスアップイベントの処理
private void KeyEventForm_MouseUp(object sender,MouseEventArgs e) {
mouseInfo="なし";
Draw();
}
}
}
|