2012-04-04 2 views
2

지난 몇 시간 동안 다른 클래스에서 양식의 GUI를 업데이트하는 방법에 대한 모든 것을 읽었습니다. 배경 작업자와 호출을 시도했지만 아무 것도 작동하지 않거나 오히려 올바르게 수행하지 못합니다. (나는 아직도 C#에 익숙하지 않다.) 그래서 .. 왜이 방법이 전혀 작동하지 않습니까?GUI 양식 업데이트 Separate Class

양식 1 :

private void button2_Click_1(object sender, EventArgs e) 
    { 
     prog.stuff(); 
    } 
    public void Updateprogressbar(int input) 
    { 
     progressBar1.Value = input; 

    } 

클래스 PROG

public static void stuff() 
    { 
     Form1 f = new Form1(); 
     int up = 100; 
     f.Updateprogressbar(up); 
    } 

나는이 아마 아주 쉬운 질문입니다 알아요,하지만 난 여전히 그것을 알아낼 수 없습니다. 진행률 표시 줄은 업데이트되지 않습니다. 그리고 나는 그 모든 것들을 공개적으로 공개 할 수 있습니다. 어쨌든 고마워.

답변

2
private void button2_Click_1(object sender, EventArgs e) 
    { 
     prog.stuff(this); 
    } 
    public void Updateprogressbar(int input) 
    { 
     progressBar1.Value = input; 

    } 


public static void stuff(Form f) 
    { 
     int up = 100; 
     f.Updateprogressbar(up); 
    } 

그래서 당신은 당신이 물건() 메소드 만 살아 Form1에 먹으 렴의 새로운 인스턴스를 인스턴스화하기 때문에 코드가 작동하지 않는 이유는 볼 수 있습니다. 내 코드에서는 Form1의 참조를 Form1의 메서드에 액세스 할 수 있도록 Prog.Stuff 클래스에 전달합니다.

+0

Omg! 감사! 트릭을 했어! 좋은 설명도 ... 나는 이제는 더 이상 인형을위한 C#을 읽을 필요가 있다고 생각합니다. – Movieboy

+1

+1 StackOverflow에 오신 것을 환영합니다. 질문을 잘 작성하고 시도한 내용의 샘플 코드가 있으면 효과가 있습니다. 그 책을 읽으십시오. 코딩은 Art, Science, Math and Technology (영화 제작과 같은)의 융합이며 좋은 책이없는 경우 참고가 될 수 있습니다. –