关于C# 获取控件名称的问题

風斩氷华 2016-03-28 04:38:51
新人刚开始接触C#几个月
想实现的目的是这样的: 用 EnumChildWindows 获取控件的(窗体的名称)名称 然后存到一个list里面 最后foreach遍历然后tostring输出到textbox里
现在发现一个问题 输出出来的全是数字....
求解这是什么原因...

大致代码如下


private void button1_Click(object sender, EventArgs e)
{
//获取被测试程序的窗口句柄
IntPtr mainWnd = FindWindow(null, "testform1");
List<int> listName = new List<int>();

StringBuilder name = new StringBuilder(256);

EnumChildWindows(mainWnd, new CallBack(delegate(IntPtr hwnd, int lParam)
{
listWnd.Add(hwnd);

// listName.Add(GetWindowText(handle, stringBuilder, stringBuilder.Capacity));


int a=GetWindowText(hwnd, name, 256);
listName.Add(a);

return true;
}), 0);
foreach (IntPtr i in listName)
{
string a = i.ToString();

textBox3.AppendText("\r\n " + a);
}


[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter,
string lpszClass, string lpszWindow);

[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

[DllImport("user32.dll")]
public static extern int EnumChildWindows(IntPtr hWndParent, CallBack lpfn, int lParam);

}



刚开始以为是list的类型是int的关系....
后来发现改成list<string> 输出的依然是数字....
求助求解释...
...全文
334 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
風斩氷华 2016-03-28
  • 打赏
  • 举报
回复
非常感谢楼上! 受教了!自己眼大漏神把返回值当返回参数了~ 做事太不谨慎了
枫0子K 2016-03-28
  • 打赏
  • 举报
回复
我一直喜欢直接了当~但阅读理解经常不及格... GetWindowText的参数用法都不熟,说明没有了解熟就开始用,那我也直接给结果吧 要想知道为什么,建议直接百度这几个API的用法
枫0子K 2016-03-28
  • 打赏
  • 举报
回复
List<string> cList = new List<string>(); var mainWnd = FindWindow(null, "Form5"); var sb = new StringBuilder(); EnumChildWindows(mainWnd, new CallBack((hwnd, lparm) => { int result = GetWindowText(hwnd, sb, 256); cList.Add(sb.ToString()); return true; }), 0); sb = new StringBuilder(); foreach (string cName in cList) { sb.AppendLine(cName); } MessageBox.Show(sb.ToString());
  • 打赏
  • 举报
回复
你找到的是句柄,当然都是数字了啊

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧