2011-04-28 114 views
0

你好 即时通讯新的C#和IM上的一个项目,在我犯了一个的UserControl1作为 * 标签文本框日期选择器 *工作现在我Wnt信号改变标签的文字,我尝试此代码,但它不能正常工作更改标签文本

using System; 
using System.Windows.Forms; 

namespace library_system 
{ 
    public partial class UserControl1 : UserControl 
    { 
     public UserControl1() 
     { 
      InitializeComponent(); 
     } 

     // private string DateLabel 

     public string DateLabel 
     { 
      **get { return DateLabel.Text; }//error when i write dateLabel.Text 
      set 
      { 
       DateLabel.Text= value;//error datelabel.Text 
      }** 
     } 

即时使用此代码在usercontrol是正确的做到这一点?

,并在主窗体我写代码 userControl11.DateLabel="From Date“; //对负载盛会 - 这是正确的 在此先感谢!

回答

4

你正在写一个属性,设置本身
如果。您的标签名称是lbl你可以简单地使用lbl.Text="what you want";
如果你需要一个属性来对文本较强的检查,你可以写:

public string DateLabel 
{ 
    get { return lbl.Text; } 
    set { lbl.Text = value; } 
} 

所以在你可以写主窗体(假设你有一个名为UC控制)

uc.DateLabel = "hello"; 

EDITED
需要明确的是:假设你有

  • 一个在你的UserControl1用户控件命名lbl标签
  • 一个名为uc的主窗体中的UserControl1控件

在用户控件的代码,你可以写:

public string DateLabel 
{ 
    get { return lbl.Text; } 
    set { lbl.Text = value; } 
} 

在主窗体,那么你可以这样写:

uc.DateLabel = "what you want"; 
+0

我的标签名是datelabel和datelable.Text不起作用 – Raghav 2011-04-28 11:06:02

+0

你得到的错误是什么? – V4Vendetta 2011-04-28 11:12:03

+0

@Raghav:你必须告诉我们你放在主窗体上的UserControl1的名字。如果它是'uc',你应该使用'uc.DateLabel =“text”;' – Marco 2011-04-28 11:16:28

2

尝试将其更改为这个(控件名称是你给你的标签ID)

public string DateLabel 
     { 
      get { return controlname.Text; } 
      set 
      { 
       controlname.Text= value; 
      } 
     } 
+0

感谢你的答复它现在工作 – Raghav 2011-04-28 11:23:53

1

你的房产被称为DateLabel,你正试图设置它。 这没有任何意义。

请尝试以下操作。您需要将一个asp:Label拖放到您的usercontrol上,并将其命名为lblDateLabel。

 
public string DateLabel 
{ 
    get { return lblDateLabel.Text; } 
    set { lblDateLabel.Text= value; } 
}