特定のイベントが表示されたら、新しいフォームを(ShowDialogを使用して)開きたいのですが、このダイアログが開いている間に発生したすべての類似イベントを無視/デキューします。イベントで1つのフォームしか開きません。
可能でしょうか?どうやって?
私が管理しようとした私のイベントメソッドが似ている:
void barcode_Scanned(object sender, string value)
{
if(value.StartsWith("d")
{
// ShowDialog
}
}
シナリオ:
- バーコードスキャン
- otherForm.ShowDialog()
- バーコードスキャン - >ので無視既に開いているダイアログ
- BarCodeスキャン - >ダイアログが既に開いているため無視されます
- otherFormは
- バーコードスキャン
- otherForm.ShowDialog()閉じている - 以前は
感謝を閉じているため>の可能性!他のを使用してからあなたを停止することを、あなたは何をやって他のすべてを停止する場合は、モーダルダイアログボックスを開いてみてください
private bool isDialogOpen = false;
void barcode_Scanned(object sender, string value)
{
if(value.StartsWith("d") && !isDialogOpen)
{
isDialogOpen = true;
// ShowDialog
isDialogOpen = false;
}
}
はダイアログを閉じた後にイベントが発生した場合、ダイアログが直接開くことになる代わりに無視されて –
がスキャナに思え、動作しません私のためにそれをキューに入れる、それはAPIデバイスの問題です。ありがとうございました... –