如何获取控件的类型

isalsa 2008-07-23 10:40:38
在一个panel内,有一系列textbox,datapicker和dropdown,在程序运行中, 需要切换其读写状态。

用笨办法,可以一个一个控件设置,如textbox1.readonly=true, dropdown1.enabled=true .....

但是控件比较多,写起来麻烦,也容易疏漏,我希望能够用 for each item in panel.controls 的方式来统一处理。

现在的问题是,textbox有readonly这个属性,而datapicker和dropdown等没有,只能设置enabled属性,我希望能够有办法来判断控件的类型,如果是textbox则设置readonly属性,如果不是则设置enabled属性。

所以请教一下高人,怎样来获取判断某个控件的属性。
(请不要告诉我全部使用enabled属性,textbox在enabled=false以后,对程序的美观程度影响很大。)
...全文
547 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shleo 2008-07-23
  • 打赏
  • 举报
回复
用 is
江城老温 2008-07-23
  • 打赏
  • 举报
回复
或者这样写也OK
foreach (Control c in this.controls)
{
if (c is TextBox)
{
MessageBox.Show("it;s TextBox!");
}
}
江城老温 2008-07-23
  • 打赏
  • 举报
回复
foreach (Control c in this.controls)
{
if (c.GetType() == typeof(TextBox))
{
MessageBox.Show("it;s TextBox!");
}
}
whoami333 2008-07-23
  • 打赏
  • 举报
回复
typeof?
skigil 2008-07-23
  • 打赏
  • 举报
回复
for each item in panel.controls
If TypeOf (sender) Is TextBox Then
Sender.readonly=true
End If
If TypeOf (Sender) Is datapicker Then
sender.enabled=true
end if
if typeof(sender) is dropdown then
sender.enabled=true
end if
next

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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