动态加载自定义控件的问题

ahljxwy 2011-08-17 03:43:54
YControl 是一个控件组,里面有几个我新建的用户控件,YComboBox就是其中的一个用户控件,LblText是自定义控件的一个属性,现在我用以下代码可以在窗体上生成一个自定义控件:

Dim a1 As New YControl.YComboBox
a1.LblText = "单据编号"
Me.Controls.Add(a1)

但是我如果用以下代码的话,就会在 “a1.LblText = "单据编号" ”行 出现这样的错误提示:“lbltext”不是“System.Windows.Forms.Control”的成员

Dim a1 As Control
a1 = New YControl.YComboBox
a1.LblText = "单据编号"
Me.Controls.Add(a1)

但是现在我又必须得使用第二种方法来处理,请求帮助!谢谢!
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hncdx 2011-08-18
  • 打赏
  • 举报
回复
顶顶更健康
ahljxwy 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wl58796351 的回复:]
VB.NET code

'采用这种方式也可以的。
Dim a1 As object
a1 = New YControl.YComboBox
CType(a1, YControl.YComboBox).LblText = "单据编号"
a1.visible=true
Me.Controls.Add(a1)
[/Quote]

谢谢各位,这种最好!
wl58796351 2011-08-17
  • 打赏
  • 举报
回复

'采用这种方式也可以的。
Dim a1 As object
a1 = New YControl.YComboBox
CType(a1, YControl.YComboBox).LblText = "单据编号"
a1.visible=true
Me.Controls.Add(a1)


cosmo_sei 2011-08-17
  • 打赏
  • 举报
回复
对于编译器来说,a1就是个Control的实例,而Control类是没有LblText属性的,自然编译错误。
要么用第一种,Dim a1 As New YControl.YComboBox
要么在第二种里做转换

Dim a1 As Control
a1 = New YControl.YComboBox
CType(a1, YControl.YComboBox).LblText = "单据编号"
Me.Controls.Add(a1)
hhddzz 2011-08-17
  • 打赏
  • 举报
回复
是一组控件的公有接口就提个父类或者接口出来
不是的话就DirectCast
要不然就开后期绑定直接用Object吧
熙风 2011-08-17
  • 打赏
  • 举报
回复
对VB一点都不了解。。。
爱莫能助。。
白鸽 2011-08-17
  • 打赏
  • 举报
回复
蛋疼VB
PPMMOOT 2011-08-17
  • 打赏
  • 举报
回复
后面那个试试类型转换看看,对vb不是很熟

16,554

社区成员

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

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