在C#中使用Method内部时,我的自定义控件无效

时间:2016-01-29 04:39:45

标签: c# controls

所以我在C#中创建了一个自定义控件(这是一个循环的进度条),我在其中创建了一些变量,如Min,Max和Value(每个进度条都必须有),每当我使用这些变量时在方法内部(比如一个按钮点击事件),代码正常编译而没有任何语法错误,但实际上并没有做任何事情。但是当我在我的表单的主要方法中使用它时,它工作得很好。这是我刚刚描述的代码。

UNION ALL

Image of what I'm trying to say

2 个答案:

答案 0 :(得分:0)

你把它写在错误的地方。在程序中,您只能在方法中修改内容。方法是 classes 中命名的代码段,例如

public class X
{
  public void DoSomething() //this is a method
  {
    //write your code here
  }
  //not here!
}

在此处阅读更多内容:https://msdn.microsoft.com/en-us/library/ms173114.aspx

P.S。您应该将[类别]属性应用于属性,而不是字段。字段通常应该是私有

private int _Value;  //this is a field
[Category("MyCathegory")]  //this attribute is used by the Visual Studio properties window to organize your control's properties
public int Value 
{ 
    get { return _Value; }
    set { _Value = value; }
}

属性用于封装字段。在此处阅读更多内容:https://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx

答案 1 :(得分:0)

为什么以与声明其他两个属性(最小/最大值)不同的方式声明_value?

应该是:

private int _value;

public int Value
{
    get{ return _value;}
    set{ _value = value;}
}

然后使用它:

Circle_Progressbar.Circlebar.Value = 50;