vb.net 中绑定自定义类到textbox的问题

我在编程中想把自定义类中的属性绑定到文本框,代码如下,PublicClassPZPrivateM_GGAsStringPublicPropertyGG()AsString... 我在编程中想把自定义类中的属性绑定到文本框,代码如下,
Public Class PZ
Private M_GG As String
Public Property GG() As String
Get
Return M_GG
End Get
Set(ByVal value As String)
M_GG = value
End Set

End Property

End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(PZ1.GG)

PZ1.GG = PZ1.GG & "ABC"
MsgBox(PZ1.GG)

End Sub
我在文本框中输入“123",点命令按钮,第一个消息框输出”123“,说明对文本框的改变引发了类属性的改变,第二个消息框输出”ABC",说明类属性发生了改变,但文本框的内容仍是“123”,没有变为“ABC”,请大有大侠帮忙,谢谢
展开
 我来答
包布丁
推荐于2016-08-27 · TA获得超过1358个赞
知道小有建树答主
回答量:1435
采纳率:25%
帮助的人:1250万
展开全部
如果只是把对象属性值赋值给文本框Text属性的话,它是不会立即改变的。TextBox的Text值需要你自己改变它。
方法1:在修改完对象的GG值后立即给文本框赋值:
PZ1.GG = PZ1.GG & "ABC"
TextBox1.Text = PZ1.GG
不过这方法不太好,不推荐。

方法2:用事件机制。在改变GG值后,由对象自身(谁)触发事件(什么时候),调用方绑定事件处理(做什么)。
在PZ类中定义事件:
Public Event GGChanged(ByVal GGValue As String)
在GG属性的Set访问器中触发事件:
Set(ByVal value As String)
M_GG = value
RaiseEvent GGChanged(value)
End Set

来看到调用方,推测你已经把它声明为成员变量了。在声明前面加个WithEvents:
Private WithEvents GG1 As New GG()
在调用窗体单独写一个处理方法:
Private Sub GG1_GGChanged(ByVal GGValue As String) Handles GG1.GGChanged 'Handles绑定对象的事件,只适用于成员变量
TextBox1.Text = GGValue
End Sub
这样虽然麻烦点,不过每当你改掉对象GG属性时,TextBox会自动更新,也减少了对象与调用方之间的耦合。

方法3:自己重写一个继承的TextBox,这里不再赘述了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式