2013-11-25 2 views
1

누군가 아래의 코드가 작동하지 않는 이유를 설명해 주시겠습니까?C# Windows Forms 코드가 작동하지 않음 - 버튼에 이벤트 첨부

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Speaker 
{ public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("bravo you did it"); 
    } 
} 
} 

이 코드에 해당하는 창은 버튼 하나로 된 단일 창입니다. 상당히 확장 된 프로그램을 작성할 의향이 있지만 문제가 발생하면 작은 샘플을 시작하여 무엇이 잘못되었는지 확인하기로 결정했습니다.이 간단한 코드가 작동하지 않는 것을 보았습니다. 어떤 제안? button1을 누르면 아무것도 일어나지 않습니다.

+1

버튼 자체에 이벤트를 연결 했습니까? – Nogard

+0

질문 제목에 "해결"을 추가하지 마십시오. 그 중 하나가 문제를 해결하는 데 도움이되면 왼쪽 여백에있는 체크 표시를 클릭하여 [수락]합니다 (http://meta.stackexchange.com/a/5235/220538). 해답이 유용하지 않고 자신의 해답을 찾은 경우, 자신의 답변을 게시하고 수락하십시오. –

답변

5

버튼을 사용하여 Click 이벤트를 첨부했는지 확인하십시오. 디자이너로 이동하여 단추를 두 번 클릭하면 코드에서 이벤트 처리기가 만들어집니다. 또한처럼 형식 생성자에 이벤트 핸들러를 첨부 할 수 있습니다

public Form1() 
{ 
    InitializeComponent(); 
    button1.Click += button1_Click; 
} 

당신이 바로 이벤트, 알았어 속성을 클릭 Button1 클릭 디자이너에 갈 수 있으며,이 이벤트 핸들러 첨부 할 수 있습니다

enter image description here

+0

오 감사합니다. 그건 이상한데, 내가 보던 튜토리얼은 그것을 사용하지 않았지만 잘 작동했다. 어쩌면 그는 디자이너와 함께 해왔고 그 부분을 놓쳤을 것입니다. –

+2

@NoobDoob, 가장 쉬운 방법은 디자이너의 버튼을 두 번 클릭하면 이벤트 처리기가 생성되어 연결됩니다. 아마도 놓친 것입니다. – Habib

+0

@NoobDoob Habib의 의견을 확대하면 Visual Studio에서 디자이너보기의 컨트롤을 두 번 클릭하면 해당 컨트롤에 가장 일반적인 이벤트라고 생각되는 이벤트 핸들러가 자동으로 생성됩니다. 모든 단일 컨트롤에 대해 항상 Click 이벤트를 가져옵니다. 예; 폼 자체를 두 번 클릭하면 Load 이벤트 핸들러가 생깁니다. – sab669

1

버튼 클릭 이벤트를 바인딩해야합니다! :)

button1.Click += button1_Click;