[seasar-dotnet:1540] Re: [S2Windows.NET]Quillを使用してモーダレスフォームを表示

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2010年 1月 13日 (水) 17:56:31 JST


小谷さん

uparrowです。

ご回答ありがとうございました。

> PjViewImageFormを閉じるときにどんな処理を呼んでいるでしょうか?
Close()しておりました。
基本的なことを理解できておらず、反省です。

Hideメソッドを用いて、開きたい分だけフォームのクラスを作ることで
実現できました。
ありがとうございました。

> Quillのインスタンスは一つの型につき一つまでのため、
> 複数表示する場合は
> ・画像ごとに別のフォームを用意する
> ・QuillではなくS2Containerの方を使う(インスタンス管理はprototypeあど)
>http://s2container.net.seasar.org/ja/dicontainer-reference.html#InstanceMode)
> ・S2Windows.NETを使わずに通常の方法でフォームを表示させる
> などの対策が必要かもしれません。
要件が複雑な場合はこちらの方法も検討してみたいと思います。

よろしくお願いいたします。

> uparrowさん
> 
> 小谷です。
> 
> PjViewImageFormを閉じるときにどんな処理を呼んでいるでしょうか?
> 
> モーダレス(Show)でフォームを開いている場合、
> 閉じるのにCloseメソッドをお使いになっているとリソースが解放され、
> 再表示しようとするとSystem.ObjectDisposedExceptionとなるはずです。
> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.close.aspx
> 
> Closeの代わりにHideメソッドやVisibleプロパティにfalseを設定する、
> といった方法を試してみていただけないでしょうか。
> 
> > 最終的には、メインの画面に複数のボタンを配置し、ボタンに関連する画像の
> > フォームを複数表示したいと考えております。
> 
> Quillのインスタンスは一つの型につき一つまでのため、
> 複数表示する場合は
> ・画像ごとに別のフォームを用意する
> ・QuillではなくS2Containerの方を使う(インスタンス管理はprototypeあど)
>http://s2container.net.seasar.org/ja/dicontainer-reference.html#InstanceMode)
> ・S2Windows.NETを使わずに通常の方法でフォームを表示させる
> などの対策が必要かもしれません。
> 
> 2010年1月12日14:23  <[E-MAIL ADDRESS DELETED]>:
> > uparrowと申します。
> >
> > Quillを使ってWindowsFormの画面遷移の制御を行っております。
> > 今まで作成した画面遷移はモーダルフォームで特に問題なく利用できております。
> >
> > このたび、メインのフォームからボタンを押下するたび、指定したパスの画像を
> > 表示したフォームをいくつも表示するような機能を作成しており、
> > 画像を表示するフォームはモーダレスのフォームで作成しました。
> >
> > ■FormDispatcherインターフェイス
> >    [Implementation]
> >    [Aspect(typeof(QuillFormInterceptor))]
> >    public interface IViewImageFormDispatcher
> >    {
> >        [TargetForm(typeof(PjViewImageForm), ModalType.Modaless)]
> >        void ShowImage(string ImageFilePath);
> >    }
> >
> > このようにインタフェースを作成し、
> > メインの画面からボタンを押下すると、PjViewImageFormのフォームが表示され
> > ます。
> > このフォームを閉じてから、再度ボタンを押下すると、
> > System.ObjectDisposedException はハンドルされませんでした。
> >  Message="破棄されたオブジェクトにアクセスできません。\r\nオブジェクト名 'PjViewImageForm' です。"
> > というようなエラーが発生してしまいます。
> >
> > モーダレスをモーダルにすると、フォームを表示、閉じるを繰り返しても
> > エラーは発生しません。
> >
> > モーダレスの時はなにか特別な設定ややり方があるのでしょうか?
> > そもそも、使い方が正しくないのでしょうか?
> >
> > お教えいただけると助かります。
> >
> > 最終的には、メインの画面に複数のボタンを配置し、ボタンに関連する画像の
> > フォームを複数表示したいと考えております。
> >
> > よろしくお願いいたします。
> > _______________________________________________
> > seasar-dotnet mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> >
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet




seasar-dotnet メーリングリストの案内