c#获取窗口句柄后 如何遍历所有控件

c#获取窗口句柄后 如何遍历所有控件,第1张

两种办法

FindWindow得到句柄之后:

1通过FindWindowEx得到控件句柄,这个有层次限制

2通过EnumWindows遍历所有控件得到控件句柄

定义一个方法

private void ShowWidth(Controls CS)

foreach(var item in CS)

{

//循环里判断类型,如果是容器类型,则继续调用次方法

if(itemgetType() == typeof(Panel))

{

thisShowWidth((item as Panel)Controls);

}

//……else if

else

{

MessageBoxShow((item as Control)WidthToString());

}

}

调用时写成thisShowWidth(thisControls);将窗体的控件集合当参数传入

每个事件都有有个Sender 参数,通过它即可判断,前提是你要能区分出那个类型的控件,比如:都是Button按钮,你可以这样做

Button source=(Button as sender);

if(source!==null)

{

//此时说明你点击的是按钮,具体那个按钮,要根据你设计时的需求来,比如你的按钮中的Tag标识类是那个按钮,那你就可以根据Tag属性来进行相关的判断 *** 作

}

一个递归方法取得页面上所有类型为textbox的控件,并对其清空,相信你看了后有所感悟。

private void Button1_Click(object sender, SystemEventArgs e)

{

foreach (Control ctl in thisControls)

{

thistxtClear(ctl);

}

}

private void txtClear(Control ctls)

{

if(ctlsHasControls())

{

foreach (Control ctl in ctlsControls)

{

txtClear(ctl);

}

}

else

{

if (ctlsGetType()Name == "TextBox")

{

TextBox tb = new TextBox();

tb = (TextBox)thisFindControl(ctlsID);

tbText = "";

}

}

}

我对你表示无奈。你把Control ctl in thisControls该下不就完了?

以上就是关于c#获取窗口句柄后 如何遍历所有控件全部的内容,包括:c#获取窗口句柄后 如何遍历所有控件、winform 获取子窗体里所有控件的宽度怎么遍历里面所有控件的宽度值最好有实例、在C# WinForm应用程序中如何获取当前窗体中被激发的控件名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9745403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存