トップ回答者
押されたキーを判断する

質問
-
VS2002で、
e.KeyCode == Keys.Back || e.KeyCode == Keys.Left || e.KeyCode == Keys.Shift
としていたものをVS2005に書き換えようとしています。調べたところいろいろと書き方があるようです。それで、
e.KeyChar == '\b' || e.KeyChar == (char)Keys.Left || e.KeyChar == (char)Keys.Shift
としてみましたが、最後のシフトキーのところがエラーになってしまいます。
どのように書くのがよいのでしょうか。お教え願います。
回答
-
-
おはようございます!(^^)!ふ~です。
シフトキーの押下検出は『e.Shift』でできるようです。
void Form1_KeyUp(object sender, KeyEventArgs e)
void Form1_KeyPress(object sender, KeyPressEventArgs e)
では上手くないようです。
Code Snippetusing System;
using System.Windows.Forms;
using System.Diagnostics;namespace keyInputTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
}void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back || e.KeyCode == Keys.Left || e.Shift == true)
{
Debug.WriteLine("選択成功");
if (e.Shift) Debug.WriteLine("シフトキーが押下されました");
}
Debug.WriteLine(e.KeyData.ToString());
}
}
}
すべての返信
-
-
おはようございます!(^^)!ふ~です。
シフトキーの押下検出は『e.Shift』でできるようです。
void Form1_KeyUp(object sender, KeyEventArgs e)
void Form1_KeyPress(object sender, KeyPressEventArgs e)
では上手くないようです。
Code Snippetusing System;
using System.Windows.Forms;
using System.Diagnostics;namespace keyInputTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
}void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back || e.KeyCode == Keys.Left || e.Shift == true)
{
Debug.WriteLine("選択成功");
if (e.Shift) Debug.WriteLine("シフトキーが押下されました");
}
Debug.WriteLine(e.KeyData.ToString());
}
}
}