首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

VB2005初始屏幕有关问题

2012-03-22 
VB2005初始屏幕问题请问大家有没有遇过这样的问题,VB2005,程序使用了初始屏幕(该窗体是新建VB里自带的,本

VB2005初始屏幕问题
请问大家有没有遇过这样的问题,VB2005,程序使用了初始屏幕(该窗体是新建VB里自带的,本人没加上任何代码),编译出来使用时,当初始屏幕关闭后,显示Mdi窗体,但不知道什么问题,Mdi窗体没有显示在屏幕的最前方.如果不加载初始屏幕就正常.
搞到现在要把Mdi窗的TopMost设为Ture才可以.请问是什么回事?

[解决办法]
仅供参考,那些API你自己找一些,并不难找到:
' ' ' <summary>
' ' ' 窗口前置
' ' ' </summary>
Public Shared Function SetForceForeground(ByVal form As Form) As Boolean
Return SetForceForeground(form.Handle)
End Function

' ' ' <summary>
' ' ' 窗口前置
' ' ' </summary>
Public Shared Function SetForceForeground(ByVal hWnd As IntPtr) As Boolean
Dim mCurrentHandle As IntPtr = GetCurrentHandle()

If hWnd = mCurrentHandle Then Return True

Dim ThreadID1 As Integer
Dim ThreadID2 As Integer
Dim nRet As Integer
'
ThreadID1 = GetProcessID(mCurrentHandle)
ThreadID2 = GetProcessID(hWnd)

If ThreadID1 <> ThreadID2 Then
UnsafeNativeMethods.AttachThreadInput(ThreadID1, ThreadID2, True)
nRet = UnsafeNativeMethods.SetForegroundWindow(hWnd)
UnsafeNativeMethods.AttachThreadInput(ThreadID1, ThreadID2, False)
Else
nRet = UnsafeNativeMethods.SetForegroundWindow(hWnd)
End If

If IsIconic(hWnd) Then
UnsafeNativeMethods.ShowWindow(hWnd, SW_RESTORE)
Else
UnsafeNativeMethods.ShowWindow(hWnd, SW_SHOW)
End If

Return CBool(nRet)
End Function

热点排行