.NET CF v1的Form.ShowDialog(Me)里的Me在不能用了!

(華)

又碰釘子了~ 一般要创建一个model dialog,我门都会用Form.ShowDialog();但。。。问题就是此ShowDialog()只会创建一个没有Owner的model dialog,所以新创建的model dialog是和main程序拥有相同的parent window。。。就是desktop window了。这样就会造成用户能够同过Running Program里activate main程序的windows去top level window,这样。。。ShowDialog()就不能再达到如.NET Framework里的ShowDialog(Me)的效果。

此问题已在.NET CF v2里解决了,但在期待.NET CF v2的面世之余。。。以下就是两个不同的解决方案,不防讨论下。

方案一:

' 把Form1的Text从Running Program里删除掉
Me .Text  =   " "

Dim  frm  As   New  Form2
' 把mdel dialog的Text换去跟Form1.Text一样(不如说Demo)所以能够出现在Running Program List里
frm.Text  =   " Demo"
' 创建model dialog
frm.ShowDialog()
' 还原Form1的Text,所以可以出先在Running Program里
Me .Text  =   " Demo"

' 确定Form1就是下一个visible top level window
Me .Capture  =   True
' 此是两个Win32API,详细请游览http://www.pinvokenet
SetForegroundWindow(GetCapture())
Me .Capture  =   False

方案二:
' 把Form1 hide起来
Me .Hide()

Dim  frm  As   New  Form2
' 创建model dialog
frm.ShowDialog()

' 把Form1 show出来
Me .Show()

你可能感兴趣的:(.NET CF v1的Form.ShowDialog(Me)里的Me在不能用了!)