2012-02-06 2 views
0

3.5 프레임 워크에서 개발 된 winform 응용 프로그램이 있습니다. 일시적으로 응용 프로그램의 단추가 응답하지 않습니다. 응용 프로그램은 제목에 "응답 없음"을 표시하지 않지만 버튼 일뿐입니다. 단추 클릭 코드에 중단 점을 넣더라도 단추를 클릭 할 때 컨트롤이 나타나지 않습니다 !!!Winform 응용 프로그램 단추가 응답하지 않게 됨

이유가 무엇일까요?

+2

데이터를 업데이트 중이거나 데이터베이스 응답을 기다리고 계십니까? 문제를 재현 할 수있는 코드를 보여 주시겠습니까? 감사. – Jonathan

답변

0

아마도 그 이유는 UI 스레드 (데이터베이스 액세스, 인터넷 연결, 파일 읽기 등)에서 뭔가를하고 있기 때문일 수 있습니다.

  • 이 당신의 코드 숨김 파일에서 비즈니스 로직을 (예를 들어, 당신의 Button_Click 방법, 온로드 방법에 등을하지 않아도)이 절대로 : 여기

    는 솔루션입니다.
  • MVC/MVP 패턴을 사용하여 비즈니스 로직과 UI를 분리합니다.
  • 항상 비즈니스 로직을 비동기 적으로 수행하십시오 (작업자 스레드, 태스크 등). 비즈니스 로직을 분리 할 때 사소한 일입니다.
+1

- 코드 숨김, MVC/MVP 패턴,이 WinForm 질문입니다. –

+2

@Jeremy Thompson : Ofcourse MVC, MVP도 Winforms에서 가능합니다. 아직 잘 개발되지는 않았지만 singelton 문서가 발견되지는 않았지만 권장됩니다. 원문 언어로 비즈니스 로직과 애플리케이션 로직을 분리 할 수 ​​있습니다. 친절히 참조하십시오 : 1. http://stackoverflow.com/questions/654722/implementing-mvc-with-windows-forms 2. http://social.msdn.microsoft.com/Forums/en-NZ/architecturegeneral/실/904d4399-5ba6-4eee-b76f-6055a2dcb8e0 – Marshal

+1

@JeremyThompson 아, 왜 PPL은 "코드 뒤에", "MVC", "MVP"웹 용어가 있다고 생각? ASP.NET MVC 때문에?! 어서와, 진지해. MVC/MVP는 어디에서나 사용되며 ASP.NET MVC가 개발되기 전에 사용 된 디자인 패턴입니다. 이들은 UI에서 BL을 분리하는 데 사용하는 패턴으로, 웹 또는 winforms 또는 콘솔 이건간에 완전히 불가지론입니다. 그것이 당신의 견해 일 수 있습니다. MS P & P 부서는이 프레임 워크에서 MVP를 추천하고 사용한 복합 애플리케이션 블록을 지원했습니다 ... –

0

동의율을 수정할 때까지 버튼 클릭 이벤트가 Handles 절을 잃어 버렸을 가능성이 가장 높습니다.

Private Sub Button1_Click(ByVal sender As System.Object, _ 
ByVal e As System.EventArgs) Handles Button1.Click 

C#에서 당신은 당신의 폼의 생성자에서 InitializeComponent를 (F12) 호출에 드릴이 있습니다 Vb.Net에서 자사 정말 쉽게 핸들의 XYZ 이벤트를 볼 수 있습니다. 그런 다음 클릭 이벤트에 할당 된 버튼을 확인하십시오.

this.Button1.Click += new System.EventHandler(this.Button1_Click); 
관련 문제