如何使只读属性在我的用户控件中可用

本文关键字:控件 用户 我的 何使 只读属性 | 更新日期: 2023-09-27 18:15:34

我让用户控制从3个文本框,但我不知道如何声明只读属性给它我尝试了很多东西,但它不工作这里是我的代码,使控件

我想让它只在需要时读取,就像我添加复选框一样,我想要如果复选框。Check =true使我的控件只读

 public partial class dateIN : UserControl
    {
        Dates datess = new Dates();
        public dateIN()
        {
            InitializeComponent();
        }
        private void dateIN_Leave(object sender, EventArgs e)
        {
            if (txtDay.Text != "" || txtMonth.Text != "" || txtYear.Text != "")
            {
                if (!datess.IsHijri(txtDay.Text.Trim() + "/" + txtMonth.Text.Trim() + "/" + txtYear.Text.Trim()))
                {
                    txtDay.Focus();
                }
            }
        }
        public string Day
        {
            set { txtDay.Text = value; }
            get { return txtDay.Text; }
        }
        public string Month
        {
            set { txtMonth.Text = value; }
            get { return txtMonth.Text; }
        }
        public string Year
        {
            set { txtYear.Text = value; }
            get { return txtYear.Text; }
        }

需要知道如何使只读属性在这里可用plz

如何使只读属性在我的用户控件中可用

直接删除属性的set { }部分

的例子:

public string Day
{
   get { return txtDay.Text; }
}

我不知道你的"txtDay", "txtMonth", "txtYear"从哪里来的相关性,但你可以做一些像

public partial class dateIN : UserControl
{
   ...
   ...
   private bool AllowEditing()
   { return SomeCondition when SHOULD be allowed...; }

   public string Day
   {
      // only allow the set to apply the change if the "AllowEditing" condition
      // is true, otherwise, ignore the attempt to assign.
      set { if( AllowEditing() )
               txtDay.Text = value; }
      get { return txtDay.Text; }
   }
   // same concept for month and year too
}

所以你可以添加一些标志到你的集合,当它为真,然后你设置一个值。你也可以使用文本框的ReadOnly属性