DOBON.NET DOBON.NETプログラミング掲示板過去ログ

キーイベント中のKeyCharについて

環境/言語:[(Windows 8.1 64bit C# (VS2013)]
分類:[.NET]

キー押下イベントでキーの識別をしたいのですが、下記の記述で
KeyCharの下に赤い波線が引かれて「未定義エラー」となります。

別のアプリでは全く同じusing設定と参照設定で動作しています。
何が悪いのか教えて頂けないでしょうか。

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 System.Collections;
using System.Threading;

private void fmCheapExpensive_KeyDown(object sender, KeyEventArgs e)
{
 if ('s' == e.KeyChar) //KeyCharが未定義エラーとなる
 {
  ;
 }
}
KeyDownイベントはキー押下イベントであって文字入力イベントではありません。
例えば、ファンクションキーの押下時にも発生しますが、これに対するCharといわれても、ですよね?
文字入力イベントはKeyPressイベントになります。
KeyDownイベントで何のキーが押されたかをチェックするなら、KeyDataプロパティとかでKeys列挙体と比較します。

後はまあ、「で、何がしたいんですか?」です。
早速の回答、有り難うございます。

> 文字入力イベントはKeyPressイベントになります。
>
KeyPressイベントにしましたらOKになりました。

内容が理解できていないもので、ネットで調べながら見よう見真似でプログラムを作っているのですがKeyPressとKeyDownは違うのですね。
イベントが発生するタイミングが異なるだけで基本は同じものだと思っていました。

もっと深く勉強します。

> 後はまあ、「で、何がしたいんですか?」です。
>
やりたいことは「s」キーが押されたらマウスポインタの座標を変数に記憶します。メインプログラムはその座標を基準にした任意の位置でクリックをシミュレートして…と言ったところです。

取り敢えずお蔭様で1つ障害が無くなりました。どうも有り難うございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板