私はここでかなり奇妙な状況にいます。(組み込みの代わりに) カスタム MessageBox フォームを作成しましたMessageBox.Show
。以下のコードは、必要なときにフォームを呼び出すために使用するものです。
internal DialogResult ShowCustomMessageBox(string message, string caption, Icon icon = null)
{
var result = DialogResult.None;
MainForm.Get.UISynchContext.Send(s =>
{
var messageBox = new DialogBox
{
Icon = icon,
Text = caption,
rtbInDialogBox = { Text = message }
};
result = messageBox.ShowDialog();
messageBox.Dispose();
}, null);
return result;
}
これを実行するmessageBox.ShowDialog();
と、messageBox インスタンスが既に破棄されているというエラー メッセージが表示されます。
コードを同期コンテキストに投稿したとき、MainForm が (他のスレッドとは対照的に) コード自体を実行すると確信していましたが、messageBox が既に破棄されていると表示される理由がわかりません。
何か案は?