0

フォームがあります。このフォームは、フォームから拡張されたエディターを開くことができます。エディターにはクリックするリンクがあり、モーダル フォームを開いてそのリンクを定義します。

// Main form
private void OnMainForm_MouseClick(object sender, MouseEventArgs e)
{
    Editor editor = new Editor();
    editor.Show();
}



// editor
private void OnEditorLink_MouseClick(object sender, MouseEventArgs e)
{
    LinkConfigDialog linkDialog = new LinkConfigDialog();
    linkDialog.ShowModal();
}

これにより、ユーザーは、既に編集している他のリンク (または同じリンク) をクリックしたり、変更しようとしたりすることができなくなります。これは仕様によるものです。

ただし、今は複数のエディターを開くことができるようにしたいと考えています。私はまだモーダルフォームを機能させたいと思っていますが、アプリケーション全体ではなく、それらのエディターに対してのみです。

どうすればこれを達成できますか?

4

1 に答える 1

1

Editorエディター ダイアログを「フリーズ」するメソッドをクラスに記述する必要があると思います。たとえば、コントロールを無効にするなどです。LinkDialog次に、 aが開かれたときにそのメソッドを呼び出すことができます。このようにEditorして、独自LinkDialogの によってのみ無効にされる複数のインスタンスを持つことができます。LinkDialogが閉じられるときに呼び出されるコントロールを再度有効にする別のメソッドを使用できます。

于 2012-12-18T20:36:36.670 に答える