在winform中可以运行的代码,到了webform不能运行。请高手看看怎么改??

wangchong 2006-05-19 03:55:01
用代码动态产生控件并使其响应事件
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim newbtn As New Button

With newbtn
.Name = CStr(intBtn)
.Text = CStr(intBtn)
.Top = 100
.Left = 10 + intBtn * 100
AddHandler .Click, AddressOf DoSomething
End With

Me.Controls.Add(newbtn)

intBtn += 1

End Sub
Private Sub DoSomething(ByVal sender As Object, ByVal e As EventArgs)
TextBox1.Text = (sender.name)
End Sub

我修改过的:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim newbtn As New Button

With newBtn
.ID = CStr(intBtn)
.Text = CStr(intBtn)
AddHandler .Click, AddressOf DoSomething
End With

Me.Controls.Add(newbtn)

intBtn += 1

End Sub
Private Sub DoSomething(ByVal sender As Object, ByVal e As EventArgs)
TextBox1.Text = (sender.name)
End Sub
但运行后出现错误:类型“Button”的控件“1”必须放在具有 runat=server 的窗体标记内

怎么改??谢谢!!!
...全文
129 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2006-05-19
  • 打赏
  • 举报
回复
Page.Controls里只有三个对象:

System.Web.UI.HtmlControls.HtmlForm
System.Web.UI.LiteralControl
System.ArgumentOutOfRangeException

要么你就如楼上所说,用个容器来加载

要么你就得遍历一下 Me.Controls 找出HtmlForm实例来作为容器。
Ninputer 2006-05-19
  • 打赏
  • 举报
回复
不能加到Me.Controls里面,要加到Form的Controls里。默认情况下Form对象没法从代码里直接访问到,因此你可以在页面上放一个Panel,然后放到那个Panel控件的Controls里面。
wangchong 2006-05-19
  • 打赏
  • 举报
回复
我是动态加入控件的,不能手工做呀!!!
shingo1017 2006-05-19
  • 打赏
  • 举报
回复
在web页里转到源文件,把<asp.net: Button1 后面添个 runat = "Server"

16,718

社区成员

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

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