
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”,请大有大侠帮忙,谢谢 展开
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”,请大有大侠帮忙,谢谢 展开
1个回答
展开全部
如果只是把对象属性值赋值给文本框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,这里不再赘述了。
方法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,这里不再赘述了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询