将用户限制为仅限用户每个表单一个控件

时间:2014-02-10 10:45:25

标签: c# winforms user-controls

我有User Control。现在我想限制用户只能使用一个 每张表格User Control

假设我的自定义控件是文本框。在这种情况下,用户每个表单只能使用一个文本框。

2 个答案:

答案 0 :(得分:0)

尝试Enterevent

         this.TxtBox.Enter += new System.EventHandler(this.TxtBox_Enter);
         private void TxtBox_Enter(object sender, EventArgs e)
         { 
              //disable all other textboxes
              foreach (Control c in this.Controls)
                {
                    if (c is TextBox)
                    {
                        c.Enabled = false;
                    }
                }
         }

答案 1 :(得分:0)

如果您想限制用户在单个表单上使用多个控件实例,请使用以下技巧限制

public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
            this.Load += new System.EventHandler(this.UserControl1_Load);
        }
        private void UserControl1_Load(object sender, EventArgs e)
        {
            if (this.ParentForm.Controls.OfType<UserControl1>().Count() > 1)
            {
                //form already has a controler throw error
                throw new System.Exception("you can have only one instance of me on a single form");
                this.Enabled = false;
                this.Dispose();
            }
        }
    }