C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (2)
C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (2)
저번에 레이아웃만 대충 잡아놨었다.. 이전글
혼자서 끙끙알면서 대충 UI 를 꾸며봤다.
아무리봐도 난 디자인에 소질이 없다.
기능은
1. 일단 버튼을 누르면 색이 변하자. (버튼 이벤트를 하나로 만들자.)
2. 버튼은 총 6개 까지만 선택이 가능하게.
3. 6개 이상 눌르면 팝업창을 띄우자.
4. 아래 6개의 텍스트 박스에 내가 클릭한 번호들을 넘겨주자. 낮은 번호 순으로
5. auto all number 버튼은 1~45까지의 난수를 생성한다. 값이 중복되면 다시 시도한다. 생성한 난수 별로 버튼 색을 변경 시키고, 텍스트 박스에 넘겨주자.
6. auto fill number 는 수동으로 몇개의 숫자를 선택후 나머지 숫자에 대해 난수를 생성하여 버튼 색을 변경 시키고, 텍스트 박스에 넘겨주자.
➤ 버튼을 누르면 색이 변하고 6개까지만 선택 가능하게, 6개 이상 눌르면 팝업창.
버튼을 더블클릭하니 클릭 이벤트가 xaml.cs 에 하나 생성 되었다.
버튼이 무려 45개나 되어, 이것들의 이벤트를 일일이 다 만들긴 귀찮을 거 같으니, 인터넷 서치를 했다.
private void button1_Click(object sender, RoutedEventArgs e){Button cButton = (Button)sender;}
저 메소드를 모든 버튼에 연결 시켜 주고 매개변수 sender 를 새로운 버튼 클래스를 만들어
넣어주는것 같다. 확실히 기초가 부족하니 내가 하는 말이 맞는지 모르겠다.
그후에 새로 만든 버튼 클래스를 이용해 변경 해주면 되는것 같다.
일단 버튼 색을 무슨색으로 변하게 할지 선정부터 했다.
음 디자인에 소질이 없는 나는 그냥 대충 저색이다. #FFE67474 이게 내 버튼색
cButton.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFE67474"));
위의 식을 이용해서 변경 하였다.
그리고 버튼 별로 상태값을 저장하기 위해 버튼 수만큼의 배열을 만들었다. 솔직히 0부터 하기 싫어서 버튼 수 + 1개 로 만들었다.
그래서 이벤트 메소드내의 절차는 아래와 같다.
private void button1_Click(object sender, RoutedEventArgs e){Button cButton = (Button)sender;if ((baLotto_number[int.Parse(cButton.Content.ToString())] == false) && (iCount<6 )){baLotto_number[int.Parse(cButton.Content.ToString())] = true;cButton.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFE67474"));iCount++;}else if ((baLotto_number[int.Parse(cButton.Content.ToString())] == true) && (iCount <= 6)){baLotto_number[int.Parse(cButton.Content.ToString())] = false;cButton.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ffdddddd"));iCount--;}else{MessageBox.Show("6개 이상 고르지 마세요.");}}
다음엔 클릭한 번호들을 textbox로 넘겨 줘 보자.
2탄 끝.
댓글
댓글 쓰기