2011-05-03 4 views
1

타이머를 멈출 수있는 방법은 무엇입니까? (do form1) whem이 form2에 있습니까?C# .net 다른 폼을 사용하여 폼의 타이머를 중지 하시겠습니까?

나는 시도했다. timer1.enabled = false; 전에 내가 form2에 간다

그러나 나는 아직도 그것이 달리고있는 이유를 모른다?

전에 form2 .. 나는 this.Visible = false로 form1 을 숨 깁니다.

+0

* timer1.Stop(); * – V4Vendetta

+0

을 사용하는 것은 어떨까요? Stop과 Enabled = false는 동일합니다. Stop 메소드의 구현을 살펴보면'Enabled = false; '라는 한 줄을 볼 수 있습니다. –

답변

-1

먼저이 기사를 보셔야합니다.

Best way to access a control on another form in Windows Forms?

그리고 @ 존 Limjap 응답을 참조;


대신 컨트롤을 공개하고, 당신은 그것의 가시성을 제어하는 ​​속성을 만들 수 있습니다

public boolean ControlIsVisible 
{ 
    get { return control.Visible; } 
    set { control.Visible = value; } 
} 

이 특성의 제어의 전체 집합을 노출하지 않을 것이다 컨트롤에 대한 적절한 접근을 만듭니다.

+0

감사합니다. 이것은 나에게 도움이 될 것입니다. – Katherina

+0

이것이 어떻게 관련되어 있는지 잘 모르겠습니다. 모든 것의 주안점으로, 컨트롤이 공개 필드 또는 속성으로 액세스되는 경우 질문에 언급되어 있지 않습니다. 둘째, 타이머 기능에 어떤 영향을 줍니까? 타이머를 속성을 통해 액세스하면 예상대로 작동하지만 필드를 통해 액세스하면 타이머가 중단되지 않는다는 것을 의미합니까? –

+0

나는 이것에 대한 답을보고 싶다. 나는 아직 이런 종류의 코딩에 반응하는 방법을 모른다. 대답을 올리면 고마워요 – Katherina

1

두 가지 형태의 테스트 프로젝트를 만들었습니다. Form1에 타이머와 버튼이 있습니다. Timer가 Form1 생성자에서 시작됩니다. 단추를 누르면 타이머가 중지되고 새 Form2가 열리고 Form1이 숨겨집니다.

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     timer1.Enabled = true; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     timer1.Enabled = false; 
     Visible = false; 
     new Form2().Show(); 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     Text = DateTime.Now.ToString(); 
    } 
} 

문제없이 타이머 정지 : 여기

코드이다.

보유하고있는 코드를 제공 할 수 있습니까?

+0

안녕하세요 덕분에 답장, 내 코드는 당신이 준 것과 같이 간단합니다. 줄을 설명해 주시겠습니까? Visible = false; 누구나 볼 수 있습니다 = false? 타이머? 죄송합니다 메신저 혼란스러워지고 .. 난 그냥 VB에서 C로 전환 # – Katherina

+0

이것은 사용하는 코드입니다 .. 메신저 게시 – Katherina

+0

'Visible'은'Form1' 클래스의 속성입니다. 'this.Visible = false;'도 할 수 있지만, 이것은 다소 중복 될 수 있습니다. –

관련 문제