Private Sub Button1_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles Button1Click
Dim buttonctrl As Button = sender
Label1Text = senderGetTypeFullName + "," + buttonctrlName
End Sub
你在new那个类的时候将本窗体传进去(this),在那个类里面写一个含有这个窗体的构造函数和一个属性,然后就可以用了!还有需要在窗体里面的Form1Designercs将需要调用的控件设置为public(在最后面设置)!给你个简单的示例
不知道你解决了没,最近正好研究python。
hwnd=win32guiFindWindow()这个获取窗体句柄,大概都会用;
ctrl=win32guiFindWindowEx(hwnd,None,'窗口类名',‘标题文本’)已知控件类名或控件名时获取控件句柄,这个标题文本不一定存在,所以使用None默认值获取的是该窗口类名中第一个顺位的控件句柄。
你使用b=win32guiGetDlgItem(edit,资源ID)最终结果是获取的是句柄,这里的资源ID其实是spy++中的窗口ID,句柄是可变的,窗口ID是不可变的。这里似乎错了,你这样子大概获取的是控件中的子项(控件有子项的话,比如Combox中的edit框),我猜的,没试过。b=win32guiGetDlgItem(hwnd,窗口ID)是已知ID下获取某控件句柄
如果你想获取某个控件的ID则ctrlid=win32guiGetDlgCtrlID(ctrl)这是一只某控件句柄的情况下获取该控件在应用程序中的窗口ID。
如果不知控件句柄的情况下大概可以试试spy++获取窗口ID,把窗口ID(这个是16进制的)转化成10进制带进b=win32guiGetDlgItem(hwnd,窗口ID)大概也可以得到控件句柄。
其实就是三个函数之间的转化
ctrl=win32guiFindWindowEx(hwnd,None,'edit',None)控件句柄
ctrlid=win32guiGetDlgCtrlID(ctrl)控件的窗口id
ctrl2=win32guiGetDlgItem(hwnd,ctrlid)控件句柄
print "%x" %ctrllist
print "%x" %ctrlid
print "%x" %ctrl
输出,看一下数据与spy++是否一致。然后ctrl=ctrl2
[DllImport("user32dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, string lParam);
private void Form1_Load(object sender, EventArgs e)
{
SendMessage(thisHandle, 0x000C, 0, "111");
}
为什么我用就不报错
直接在类里当然不能用,你这是调用别人的方法,又不是你自己写的方法。
以上就是关于VB2010怎么获取鼠标所点击的窗体内的控件的名称和类型全部的内容,包括:VB2010怎么获取鼠标所点击的窗体内的控件的名称和类型、C# 怎么在另一个类中获取窗体内textbox控件的text属性值、python pywin32 里面 *** 作窗体,获取窗体里面的数据,在函数GetDlgItem函数中,怎么获取第二个参数的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)