4

既存のアプリケーションで非モーダル フォームを表示できるようにしたいと考えています。現時点では、次のようなことができます。

myform.ShowDialog(handleToApp);

しかし、それはアプリケーションを親とするモーダルフォームを作成し、モーダルではないものを本当に探しているので、フォームがフォーカスを失ったときに制御の流れを壊したり、閉じられないことについてユーザーを困らせたりすることはありません。

誰かが私が探していることをどのように行うことができるか、またはできるかを知っていますか?

4

2 に答える 2

2

探していたものが見つかりました。次のようなクラスを作成する必要があります。

public class MapinfoWindowHandle : System.Windows.Forms.IWin32Window
    {
        private IntPtr handle;
        public MapinfoWindowHandle(IntPtr hWnd)
        {
            handle = hWnd;
        }

        #region IWin32Window Members

        IntPtr System.Windows.Forms.IWin32Window.Handle
        {
            get { return handle; }
        }

        #endregion
    }

そして、これを行うことができます:

IntPtr windowhandle = new IntPtr(hWnd);
MyForm.Show(new MapinfoWindowHandle(windowhandle));
于 2008-12-04T06:05:19.643 に答える
-1

簡単なのはmyForm.Show()どうですか?

于 2008-12-02T06:27:59.817 に答える