C# 如何在c中创建属性#

C# 如何在c中创建属性#,c#,properties,C#,Properties,我在我的项目中为textbox创建属性,但我有一个问题 当我为TextBox设置属性“false”或“true”时,C#为表单中的所有TextBox设置属性“false”或“true”,有什么问题 这是我的代码 public static bool number = false; public Number_TextBox() { InitializeComponent(); } public Number_TextBox(IContainer co

我在我的项目中为textbox创建属性,但我有一个问题

当我为TextBox设置属性“false”或“true”时,C#为表单中的所有TextBox设置属性“false”或“true”,有什么问题

这是我的代码

public static bool number = false;

public Number_TextBox()
    {
        InitializeComponent();
    }

    public Number_TextBox(IContainer container)
    {
        container.Add(this);

        InitializeComponent();
    }

    public bool IsNumber
    {
        get { return number; }
        set { number = value; }
    }

    protected override void OnKeyPress(KeyPressEventArgs e)
    {
        base.OnKeyPress(e);
        if (IsNumber == true)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }
    }

去掉关键字
static

public bool number = false;
private bool number = false;

表示您的字段将由类本身使用,而不是单独用于类的每个实例。

去掉关键字
static

public bool number = false;
private bool number = false;

表示您的字段将由类本身使用,而不是单独用于类的每个实例。

原因是您使用的是影响整个类的
静态变量。尝试将其更改为
private
非静态变量。它也没有理由是公共的,只有属性应该是公共的:

public bool number = false;
private bool number = false;
此外,您还可以通过编写以下代码来简化代码:

public bool IsNumber { get;  set; }

原因是您使用的是影响整个类的
静态
变量。尝试将其更改为
private
非静态变量。它也没有理由是公共的,只有属性应该是公共的:

public bool number = false;
private bool number = false;
此外-您可以通过编写以下内容简化代码:

public bool IsNumber { get;  set; }

谢谢,这是真的;谢谢,这是真的;谢谢,这是真的;请阅读我答案中的补充说明。谢谢,这是真的;阅读我答案中的附加注释。