[INMN06695] モーダルダイアログ表示中にキーボタンが再度クリックできる

文書番号 : 25512     文書種別 : 制限事項     最終更新日 : 2008/03/13
文書を印刷する
対象製品
InputMan for .NET 4.0J Windows Forms Edition
発生環境
動作環境と同じ
詳細
この現象はFunctionKeyコントロールを使用し、FunctionKeyPressイベントのハンドラでUseEXDialogプロパティがTrueに設定されたPrintDialogをShowDialogメソッドで表示する場合に発生します。
FunctionKeyコントロールのキーボタンをクリックしてPrintDialogを表示させた場合、モーダルダイアログの表示であるにもかかわらず、再度キーボタンをクリックして2つ目のPrintDialogを表示させることができます。

この現象はWinodws API PrintDlg / PrintDlgExが、モーダルダイアログ表示時に、規定のメッセージをオーナーウィンドウに送信しないことに起因しています。
回避方法
PrintDialogのShowDialogメソッドを呼び出す前に、FunctionKeyコントロールのCaptureプロパティを一時的にFalseに設定するとこの現象を回避できます。
以下はこの回避方法の実装例です。
[VB]
FunctionKey1.Capture = False

PrintDialog1.ShowDialog()

FunctionKey1.Capture = True
[C#]
functionKey1.Capture = false;

printDialog1.ShowDialog();

functionKey1.Capture = true;

この文書は、以前は次のFAQ IDで公開されていました : 7396