在运行时更改usercontrol中的标签文本

时间:2011-04-28 10:57:13

标签: c#

您好 我是c#的新手,正在研究一个项目,我在其中创建了一个usercontrol1 * 标签文本框datepicker *现在我想更改标签文本,我正在尝试此代码但它无法正常工作

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“; // on for load event ??这是对的 在此先感谢!!

3 个答案:

答案 0 :(得分: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";

答案 1 :(得分:2)

尝试将其更改为此(控件名称是否已添加到您的标签中)

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

答案 2 :(得分:1)

您的属性被称为DateLabel,您正在尝试设置它。 这没有意义。

尝试以下方法。您需要将asp:Label拖到usercontrol上并将其命名为lblDateLabel。

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