我有用户控件接受3个字符串并将其设置为3个标签。 加载用户控件时我设置默认值,当我通过参数时,标签将更改它的文本。 但我的问题是标签没有改变它的价值,我检查代码并看到用户控件读取所有值但没有任何反应:( 抱歉我的英文不好 ----------- 表格登录 ------------ Imports System.Data.OleDb Imports System.IO 进口系统 进口System.Windows.Forms 公共类别FrmLogin
I have user control that accept 3 String and set it into 3 labels. on load of the user control i set default value,and when i pass the paremeter the label will change it's text. but my problem is the lables not changing it's value at all, i check the code and see the user control read all the value but nothing happen :( Sorry for my bad english ----------- Form Login ------------ Imports System.Data.OleDb Imports System.IO Imports System Imports System.Windows.Forms Public Class FrmLogin
Dim mb As New _userCompanyBar() Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Close() End Sub Public Sub New() ' This call is required by the Windows Form Designer. InitializeComponent() Me.Controls.Add(mb) ' Add any initialization after the InitializeComponent() call. End Sub Private Sub _BtnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _BtnLogin.Click End Sub Private Sub _BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _BtnCancel.Click Me.Close() End Sub Private Sub LoginForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim _companyBUS As CompanyBUS _companyBUS = New CompanyBUS Dim _CompanyVO = New CompanyVO() _CompanyVO = _companyBUS.getCompany() Try If Not (_CompanyVO Is Nothing) Then ' Dim CompanyBar As New _userCompanyBar mb.setData(_CompanyVO.CompanyName, _CompanyVO.CompanyAddress, _CompanyVO.CompanyPhone) End If Catch ex As Exception End Try End Sub End Class--------------- _userCompanyBar -------------
--------------- _userCompanyBar -------------
>_userCompanyBar Imports System.ComponentModel Public Class _userCompanyBar Dim Company = "Company Name" Dim CompanyAddress = "Company Address" Dim CompanyPhone = "Company Phone" Public Sub CompanyBar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load _lbCompanyName.Text = Company _lbCompanyAddress.Text = CompanyAddress _lbCompanyTelp.Text = CompanyPhone End Sub Private Sub _pnBackgroundColor_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles _pnBackgroundColor.Paint End Sub Public Sub New() ' This call is required by the Windows Form Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. End Sub Public Sub New(ByVal _CompanyName As String, ByVal _CompanyAdresse As String, ByVal _CompanyPhone As String) ' This call is required by the Windows Form Designer. InitializeComponent() setData(_CompanyName, _CompanyAdresse, _CompanyPhone) End Sub Public Sub setData(ByVal _CompanyName As String, ByVal _CompanyAdresse As String, ByVal _CompanyPhone As String) _lbCompanyName.Text = _CompanyName _lbCompanyAddress.Text = _CompanyAdresse _lbCompanyTelp.Text = _CompanyPhone End Sub Private Sub _lbCompanyTelp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _lbCompanyTelp.Click End Sub End Class</pre>推荐答案
可能您没有引用正在显示的用户控件的实例。除非您这样做,否则您可以进行所有您喜欢的更改,它不会影响显示一个iota! 检查您调用setDate方法的代码 - 和确保你在正确的实例上调用它,而不是新实例。 Probably, you aren't referencing the instance of your user control that you are displaying. Unless you do, you can make all the changes you like, it won't affect the display one iota! Check the code where you call the setDate Method - and make sure you are calling it on the correct instance, rather than a new one.
更多推荐
将参数传递给用户控件
发布评论