2017-10-26 3 views
0

제목에서 말한 것처럼 트랙 바를 사용하여 펜 너비 크기를 늘리려고합니다. 이 내가 지금까지 쓴 것입니다 :트랙 바 값으로 펜 너비를 증가

public partial class Form26_10 : Form 
    { 
     float scrollValue = 0F; 

     Pen CustomPen = new Pen(Color.Black, scrollValue);//ERROR<- 

     public Form26_10() 
     { 
      InitializeComponent(); 

     } 

    private void trackBar1_Scroll(object sender, EventArgs e) 
    { 
     scrollValue = trackBar1.Value; 
    } 

} 기본적으로

난 다음, 메모리에 값을 선언 펜 너비 매개 변수에 그것을 가지고 그래서 트랙 바의 값 변경이 때 할 수 있어야한다 펜 너비가 변경됩니다. 내가이 오류를 얻고 있지만 : 당신이 변화 값을 가지고있는 경우에

a field initializer cannot reference the non-static field, method or property of 'Form.scrollValue' 
+0

잘못된 접근입니다. 필요할 때만 Pen 객체를 생성하십시오. using 문으로. 어느 시점에서 생성자에서 trackBar1.Value를 사용할 수 있으며 적절한 값을 갖습니다. trackBar1_Scroll이 수행해야하는 모든 작업은 Invalidate()를 호출하여 펜을 사용하는 모든 코드가 다시 실행되도록합니다. –

답변

0
public partial class Form26_10 : Form 
{ 
    private Pen CustomPen; 

    public Form26_10() 
    { 
     InitializeComponent(); 
     CustomPen = new Pen(Color.Black, scrollValue); 
    } 

    private void trackBar1_Scroll(object sender, EventArgs e) 
    { 
     CustomPen.Width = trackBar1.Value; 
    } 
} 

당신은 선언에서 클래스 필드를 초기화하지 않아야합니다. 또한 float는 0.0F의 기본값을 가지므로 초기화 할 필요가 없습니다. 나는 당신이 그것을 필요로하지 않을 것이라고 생각했기 때문에이 예제에서 그것을 제거했다. 그래도 사용하려는 경우 상단에 추가하면됩니다.

float scrollValue;