VSTOで書かれたExcelアドインから生成されるフォームがあります。フォームを常にExcelスプレッドシートの上に残し、ユーザーがその下のシートを操作できるようにします。
フォームコンストラクターにはthis.TopLevel = true;が含まれていますが、セルを選択すると、フォームはスプレッドシートの後ろに表示されません。
他の誰かがこの問題に遭遇し、回避策を見つけましたか?
VSTOで書かれたExcelアドインから生成されるフォームがあります。フォームを常にExcelスプレッドシートの上に残し、ユーザーがその下のシートを操作できるようにします。
フォームコンストラクターにはthis.TopLevel = true;が含まれていますが、セルを選択すると、フォームはスプレッドシートの後ろに表示されません。
他の誰かがこの問題に遭遇し、回避策を見つけましたか?
フォームのTopLevelはすでにtrueに設定されています。あなたはTopMostが欲しいです。
P / SetParent()を呼び出すのが最善ですが、必要なウィンドウハンドルを取得するのはそれほど簡単ではないかもしれません。多分Process.GetCurrentProcess()。MainWindowHandle
Excelでインタラクティブなフォームを作成する場合は、ハンスが元の回答で述べたように、ピンボーキングを行う必要があります。このリンクを参照してください-MSDNで
この例は、refeditコントロール(通常はVBAからのみ使用可能)用です。この例では、IWin32Windowと、このパラメーター値を使用してフォームオブジェクトのShowメソッドを呼び出すためのピンボーキングに関する必要な情報が提供されます。