ダイアログは、閉じるボタンを押したかのように、例外なくキャンセル結果で閉じます。
RightToLeft プロパティを設定する唯一の安全な場所は、フォーム コンストラクターです。
この情報が誰かの時間を節約するかもしれないと思いました。
この問題について詳しく説明できる場合: 公式のバグ確認がある場合、ShowDialog が予期せず終了する原因となるその他の原因を教えてください。
実行時にフォームの RightToLeft プロパティを変更する
2番目のリンクからの引用:
2 日も経たないうちに 2 つ目のバグを発見しました。この新しいバグは非常に重大です。
RightToLeft プロパティがデフォルト値 ( RightToLeft=False) に設定された標準フォームがあります。このフォームを Show Function ( Form1.Show(me) ) で表示してみましょう。
このフォームには、フォームの RightToLeft を No ではなく Yes に変更する Button があります。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.RightToLeft = Windows.Forms.RightToLeft.Yes
End Subフォームのタイトルが正常に右側に変更されます。
ここまでは問題ありません。
次のように問題が発生します
Show(Me) を使用して表示する代わりに、 ShowDialog(Me) 関数を使用してこのフォームをユーザーに表示するとします。次に、Form RightToLeft を No ではなく Yes に変更するボタンをクリックすると、フォームは理由もなく突然閉じられ、例外もスローされません。
これは新しい問題であり、.NET 3.0 (Orcase) にも存在します。