【高分求,在线等】VB2005中,怎么为每个代码添加的RichTextBox控件写事件

sdfasf3e4awef 2009-09-02 02:33:15
请各位高手静下心来看看:

在VB2005中,我想用代码在一个窗体上添加多个RichTextBox控件,然后再给各个控件添加事件。但是并不能达到所要的每个窗体上都是事件的效果。也就是说,所添加的控件只有最后一个有事件,其他的都没有事件,因为所有的控件名称一致。
我想要的效果是,能够为每个代码添加的RichTextBox都写上事件。

我所写的代码为:(说明:窗口上有一个按钮,名为Button1)
Public Class Form1

Dim RichTextBox1 As RichTextBox
Private Sub addRichTextBox()
'得到所添加控件的顶部位置
Dim BottomNum As Integer = 0
For Each obj As Control In objForm.Controls
If TypeOf obj Is RichTextBox Then
If obj.Bottom > BottomNum Then

BottomNum = obj.Bottom
End If
End If
Next

RichTextBox1 = New RichTextBox
RichTextBox1.Name = "RichTextBox"
RichTextBox1.Width = 200
RichTextBox1.Height = 40
RichTextBox1.Top = BottomNum + 10
RichTextBox1.Left = 40
objForm.Controls.Add(RichTextBox1)
AddHandler RichTextBox1.GotFocus, AddressOf

RichTextBox1_GotFocus
AddHandler RichTextBox1.LostFocus, AddressOf

RichTextBox1_LostFocus
End Sub

'得到焦点的事件
Private Sub RichTextBox1_GotFocus(ByVal sender As Object, ByVal e

As System.EventArgs)

RichTextBox1.BackColor = Color.PaleTurquoise
End Sub

'失去焦点的事件
Private Sub RichTextBox1_LostFocus(ByVal sender As Object, ByVal e

As System.EventArgs)

RichTextBox1.BackColor = Color.White
End Sub

'单击添加控件的按钮
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e

As System.EventArgs) Handles Button1.Click

Call addRichTextBox()

End Sub
End Class
...全文
105 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjjup 2009-11-25
  • 打赏
  • 举报
回复
看不见回复
vbfool 2009-09-02
  • 打赏
  • 举报
回复
如果不是Name属性的话,你Dim时是啥就是啥了。
dylike 2009-09-02
  • 打赏
  • 举报
回复
I+=1
RichTextBox1.Name = "RichTextBox" & I
sdfasf3e4awef 2009-09-02
  • 打赏
  • 举报
回复
自己顶一下!
sdfasf3e4awef 2009-09-02
  • 打赏
  • 举报
回复
解决了,谢谢!一会给分。

还能再问一个问题吗?

怎么为代码添加的控件命名,不是Name属性。而是 RichTextBox1.Name 前面的RichTextBox1。

直接拖控件这些名称都不一样,但是代码添加的名称都是一样的。能够设置代码添加的控件的名称不一样吗?

我会给你加分的。
dylike 2009-09-02
  • 打赏
  • 举报
回复
没仔细看题.原来是要给每个控件加事件.如楼上所说.

    '得到焦点的事件
Private Sub RichTextBox1_GotFocus(ByVal sender As Object, ByVal e

As System.EventArgs)

Sender.BackColor = Color.PaleTurquoise
End Sub

'失去焦点的事件
Private Sub RichTextBox1_LostFocus(ByVal sender As Object, ByVal e

As System.EventArgs)

Sender.BackColor = Color.White
End Sub
vbfool 2009-09-02
  • 打赏
  • 举报
回复
明白了。你的每个事件里有错误,请你在事件中,使用Sender,而不是用RichTextBox1。

'失去焦点的事件
Private Sub RichTextBox1_LostFocus(ByVal sender As Object, ByVal e

As System.EventArgs)

Ctype(Sender,RichTextBox).BackColor = Color.White
End Sub


这样试试看。
sdfasf3e4awef 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dylike 的回复:]
没看出代码有什么问题
[/Quote]
你好!
这段代码是没有问题的,但是达不到我要的效果。
上段代码只能为一个RichTextBox添加事件,我想为每个RichTextBox都添加事件
dylike 2009-09-02
  • 打赏
  • 举报
回复
没看出代码有什么问题

16,554

社区成员

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

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