VB.net模块中给textbox.text属性赋值不能显示到窗体的有关问题
VB.net模块中给textbox.text属性赋值不能显示到窗体的问题
我在模块中给一个文本框赋值frm.textbox1.text=“123456”,发现不能显示到窗体中,
但是在窗体模块的代码中写me.textbox1.text=“123456”,就没有问题,为什么?
如果我一定要在模块中给textbox.text属性赋值,该怎么办?
从VB6转.net之后,我调试的时候代码都不能实时改变显示,好郁闷
------解决思路----------------------
估计是你创建了一个新的窗体实例对象,你更新的不是原来的那个,所以看不到效果。
你应该用Application.OpenForms集合找你已经打开的那个窗体
------解决思路----------------------
主要是你语句 中的frm是哪定义的,如果是在一个Module里,那你必须在创建窗体的时候将该窗体赋值给frm变量,或者索性用frm创建窗体,这样应该就可以了。
------解决思路----------------------
您的错误在您不能在Module模块中直接引用和实例化窗体类frm,
frm。textbox1.text=“123456”,这样不会指向本窗体类的TextBox控件。
解决代码如下;
------解决思路----------------------
因为鼠标单击会导致文本框中的被选中状态消失,所以不能通过在鼠标的事件处理中来判断选择区域的长度的方法来实现,只好通过一个类内部变量来实现了。代码如下:
我在模块中给一个文本框赋值frm.textbox1.text=“123456”,发现不能显示到窗体中,
但是在窗体模块的代码中写me.textbox1.text=“123456”,就没有问题,为什么?
如果我一定要在模块中给textbox.text属性赋值,该怎么办?
从VB6转.net之后,我调试的时候代码都不能实时改变显示,好郁闷
------解决思路----------------------
估计是你创建了一个新的窗体实例对象,你更新的不是原来的那个,所以看不到效果。
你应该用Application.OpenForms集合找你已经打开的那个窗体
------解决思路----------------------
主要是你语句 中的frm是哪定义的,如果是在一个Module里,那你必须在创建窗体的时候将该窗体赋值给frm变量,或者索性用frm创建窗体,这样应该就可以了。
------解决思路----------------------
您的错误在您不能在Module模块中直接引用和实例化窗体类frm,
frm。textbox1.text=“123456”,这样不会指向本窗体类的TextBox控件。
解决代码如下;
Module Module1
Private TextBox1 As TextBox
Public Property _TextBox1() As TextBox
Get
Return TextBox1
End Get
Set(ByVal value As TextBox)
TextBox1 = value
End Set
End Property
Sub MySub()
TextBox1.Text = "123456"
End Sub
End Module
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Module1._TextBox1 = Me.TextBox1
Module1.MySub()
End Sub
End Class
------解决思路----------------------
因为鼠标单击会导致文本框中的被选中状态消失,所以不能通过在鼠标的事件处理中来判断选择区域的长度的方法来实现,只好通过一个类内部变量来实现了。代码如下:
Private m_blnSelectAll As Boolean = True
Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
If m_blnSelectAll Then
TextBox1.SelectAll()
Else
TextBox1.SelectionLength = 0
End If
m_blnSelectAll = Not m_blnSelectAll
End Sub