2017-10-18 141 views
0

如果我使非模态窗口出现不同的问题。所有我打开Visual Studio的实验版本,并打开一个解决方案,我导航到一个C#页面。然后我打开我的扩展的WPF窗口,在那里我可以愉快地在该WPF窗口中输入文本框。但是,无论何时单击退格键[< - ]或[删除]键,这不会影响当前WPF文本框,而是当前解决方案中以前打开的C#代码窗口。我用这种方式打开我的窗口:VSIX和VS SHELL:窗口显示问题()

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

我知道我可以解决我的问题:

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

但我不希望这样的解决方案。我想在visual studio shell中导航文件,同时使用我的插件而不会有输入问题。如何使用Show()解决此问题?

+0

您应该DialogWindow – ErikEJ

+0

继承难道我的窗口应该从DialogWindow继承和我应该使用Window.Show()? – user2837896

+0

好吧我从DialogWindow继承。但与Show()我有同样的问题。 我打开我的插件,我写在一个文本框中,然后我点击VS壳(C#文件):如果我删除我的文本框光标保持在C#文件 – user2837896

回答

0

如果要显示“非模态”窗口,它需要是一个工具窗口或文档窗口。否则,VS不会知道它,你会遇到各种各样的问题,它不会得到消息,事件,加速器等......

如果你想要一个模态窗口,使用前面提到的DialogWindow类以确保当对话框显示或解除时,IDE可以正确禁用/启用它的窗口。

真诚,