
正文
vb.net设置焦点,vb窗体失去焦点
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net设置windows焦点程序
给你个参考的例子,窗体打开时可能大小有变化,软件名可能有变化
先加个控件ListBox1,运行后双击ListBox1上程序名
Public Class Form1
Public myProcess() As Process
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myProcesses() As Process = Process.GetProcesses()
Dim jh As New ArrayList
For Each bs As Process In myProcesses
If CInt(bs.MainWindowHandle) 0 Then
ListBox1.Items.Add(bs.ProcessName)
jh.Add(bs)
End If
Next
ReDim myProcess(jh.Count - 1)
jh.CopyTo(myProcess)
End Sub
Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Integer, ByVal nCmdShow As Long) As Integer
Private Sub ListBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDoubleClick
Dim a As Process = myProcess(ListBox1.SelectedIndex)
Try
Dim dd = ShowWindow(a.MainWindowHandle, H1)
AppActivate(a.Id)
Catch ex As Exception
End Try
End Sub
End Class
相关问答
Q1: vb.net 中设置焦点是什么意思?
最正统的方法是把textbox1的tabindex属性设为0(其他控件的tabindex不能是0)
要在load事件里用textbox1.focus()也可以,但要先me.show(),否则不会起作用。因为控件得到焦点需要控件”可见可用“,在formload阶段整个窗体是“不可见"的,需要强制使用me.show()。
Q2: vb.net 设置载入form时,焦点为某个按键
在form_load事件中,加入:
Button5.Focus()
这样焦点就在Button5上了
Q3: vb.net 如何让两个窗体同时具有焦点
一个时刻只有一个窗体能获得焦点。关键是窗体收到
WM_KILLFOCUS
消息时的重绘。如果你只是想让窗体看起来并没有什么不同,就这样吧。我用
VB6,所以写的都是
API,VB.NET
的库不是很熟,所以……将就一下吧。
调用
SetWindowLong,使窗体的消息处理链接到新的窗口函数
NewWndProc,然后在
NewWndProc
里检测到
WM_KILLFOCUS
时就将其移出消息队列即可。完毕之后调用原来的窗口函数。







