- KeyDown(上下キー)→KeyDown(KeyValue=0x83)→KeyUp(上下キー)→KeyUp(KeyValue=0x83) の順でイベントが発生する
- KeyDownで0x83のフラグを立てておいて、KeyUpで上下キーが来たときにフラグ立ってたらスクロールとみなせばOKそう。
- ちなみに「WM_KEYDOWN 0x83」でぐぐったら VK_F20 ってでてきたので、e.KeyValue = 0x83 じゃなくて、e.KeyData = Keys.F20 っでもいいかもしれない。
private const int XCRAWL_KEYCODE = 0x83;
bool m_scrollFlag = false;
<summary>
</summary>
private void inputTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == XCRAWL_KEYCODE)
{
m_scrollFlag = true;
e.Handled = true;
}
}
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
private void inputTextBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyValue == XCRAWL_KEYCODE)
{
m_scrollFlag = false;
e.Handled = true;
return;
}
switch (e.KeyCode)
{
case Keys.Up:
if (m_scrollFlag)
{
System.Diagnostics.Debug.WriteLine("Xcrawl Up");
}
else
{
System.Diagnostics.Debug.WriteLine("Up");
}
break;
case Keys.Down:
if (m_scrollFlag)
{
System.Diagnostics.Debug.WriteLine("Xcrawl Down");
}
else
{
System.Diagnostics.Debug.WriteLine("Down");
}
break;
default:
break;
}
}