当方法执行过程中,可能有键盘入力,这时会触发其它事件导致程序执行不正常。可以用ProcessCmdKey屏蔽。
例如:
private void fckFunctionKey_FunctionKeyPress(object sender, GrapeCity.Win.Input.FunctionKeyPressEventArgs e)
{
if( this.blnLockFlg )
{
// ロック中
return;
}
else
{
this.blnLockFlg = true;
}
try
{
}
finally
{
Application.DoEvents();
this.blnLockFlg = false;
}
//当某个方法执行过程中需要Lock时,屏蔽入力Key
protected override bool ProcessCmdKey( ref Message msg, Keys keyData )
{
try
{
// 2005/06/28 追加開始 明細Enterキー制御
if( this.blnLockFlg && keyData == Keys.Enter )
{
// ロック中
return true;
}
// 2005/06/28 追加終了 明細Enterキー制御
}
catch
{
}
}
return base.ProcessCmdKey (ref msg, keyData);
}