SPREADを張り付けた画面にて以下の操作を行うと例外が発生します。
- 予めコマンドプロンプトなどの別の画面を立ち上げておく.
- 標準のコンボセルをどこかの列に配置して実行.
- データは何件か用意しておく.
- マウスでコンボのドロップダウンを表示
- ドロップダウンを閉じないまま、別の画面(たとえばコマンドプロンプト)をアクティブにする.
- 上でアクティブになった画面はそのままにして、もう一度マウスにてコンボを開く.
- このとき、コンボの右端のドロップボタンではなく項目自体をクリック。
- そのまま更にもう一度コンボを開こうとするとNull Reference発生・・・。
- このとき、コンボの右端のドロップボタンではなく項目自体をクリック。
特徴がありまして、出力されるスタックトレースが以下のようになります。
at FarPoint.Win.FpCombo.ShowList(Boolean bShow) at FarPoint.Win.FpCombo.a(Object A_0, MouseEventArgs A_1) at System.Windows.Forms.Control.OnMouseUp(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ListBox.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
ShowListが見えたら、このエラーの可能性が高いです。
原因は、FarPointの本家サイトのフォーラムにて
いろいろ書かれているのですが、FormのActivatedイベントが発生する為の
ようです。フォーラムのポスト内容を見ると、2009年ってなっているんですが
直っていないようですね。
- Error with ISubEditor
最後の投稿内容を見ると、何らかのフラグを用意して
ComboDropDownとActivatedイベントを処理すればいいみたいに
書かれてますが、何もユーザコードを書いていない状態で
操作しても落ちるんですが・・・。
パッチも提供されていない模様です。
なんとかならないものか・・・・。