2017-10-18 13 views
0

モーダルでないウィンドウを作成すると、別の問題が発生します。私はすべてVisual StudioのExperimentalバージョンを開き、ソリューションを開いてC#ページに移動します。次に、ExtensionのWPFウィンドウを開いて、そのWPFウィンドウのTextBoxに喜んで入力することができます。ただし、バックスペース[< - ]または[delete]キーをクリックするたびに、現在のWPFテキストボックスに影響はありませんが、現在のソリューションでは以前に開いたC#コードウィンドウには影響しません。VSIXとVSシェル:window show()の問題

window = new MyWindow() 
window.show(); 

私は私が私の問題を解決することができることを知っている:私は、このように私のウィンドウを開く

uiShell.EnableModeless(0); 
window = new MyWindow() 
window.ShowDialog(); 
uiShell.EnableModeless(1); 

しかし、私はこのソリューションを望んでいません。私はビジュアルスタジオのシェルでファイルを移動したいと同時に、入力に問題がなく、私のアドインを使用しています。どうすればShow()を使ってこの問題を解決できますか?

+0

あなたは私のウィンドウがダイアログウィンドウから継承しなければならないんダイアログウィンドウ – ErikEJ

+0

から継承しなければならないと私は使うべきWindow.Show()? – user2837896

+0

私はDialogWindowから継承しました。しかしShow()では同じ問題があります。 私のアドインを開いて、テキストボックスに書き込んだ後、vsシェル(c#ファイル)をクリックします。テキストボックスを削除すると、カーソルはC#ファイルに残ります – user2837896

答えて

0

"非モーダル"ウィンドウを表示するには、ツールウィンドウまたはドキュメントウィンドウである必要があります。そうでなければ、VSはそれについて知りませんし、メッセージ、イベント、アクセラレータなどを取得していない、あらゆる種類の問題に遭遇します。

前述のようにDialogWindowクラスを使用しますダイアログが表示または非表示になったときにIDEがウィンドウを適切に無効/有効にできるようにします。敬具

関連する問題