→ 개발/WPF
[WPF C#] 새로띄운 창(유저컨트롤)에서 값, 버튼 이벤트 가져오기
벅스쭌
2010. 8. 6. 06:52
반응형
지금 프로젝트를 유저컨트롤로 만들고 다른 프로젝트에 넣을 것 입니다. 그리고 여기에 보이는 "바로가기" 버튼을 누르면
다음과 같이 새로운 프로젝트에서 버튼 이벤트를 받아서 받은값 (여기에서는 1 을 받았습니다.)을 메세지 박스로 띄우겠습니다.
지금 보시는 화면에서 "뷰어/에디터"에 있는 바로가기 버튼 Name은 "ViwerButton" 입니다.
- 유저 컨트롤로 만든 프로젝트 소스 -
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace ProgramMiniInfo { ////// Window1.xaml에 대한 상호 작용 논리 /// public partial class Window1 : Window { public delegate void ClickProgramInfoButton(int buttonnum); public event ClickProgramInfoButton ProgramInfoButtonHandler; public Window1() { InitializeComponent(); } private void ViwerButton_Click(object sender, RoutedEventArgs e) { ProgramInfoButtonHandler(1); } private void DataButton_Click(object sender, RoutedEventArgs e) { ProgramInfoButtonHandler(2); } private void DiaryButton_Click(object sender, RoutedEventArgs e) { ProgramInfoButtonHandler(3); } private void SimulationButton_Click(object sender, RoutedEventArgs e) { ProgramInfoButtonHandler(4); } private void StudyButton_Click(object sender, RoutedEventArgs e) { ProgramInfoButtonHandler(5); } } }
- 유저 컨트롤을 사용하는 프로젝트 소스 -
private void Start() { programminiinfodll = new ProgramMiniInfoDLL.UserControl1(); InputUserControl(programminiinfodll); programminiinfodll.ProgramInfoButtonHandler += new ProgramMiniInfoDLL.UserControl1.ClickProgramInfoButton(programminiinfodll_ProgramInfoButtonHandler); } void programminiinfodll_ProgramInfoButtonHandler(int buttonnum)//처음화면 프로그램 설명 버튼 클릭 { if (buttonnum == 1) { MessageBox.Show(buttonnum.ToString() + "번을 누르셨군요"); } else if (buttonnum == 2) { MessageBox.Show(buttonnum.ToString() + "번을 누르셨군요"); } else if (buttonnum == 3) { MessageBox.Show(buttonnum.ToString() + "번을 누르셨군요"); } else if (buttonnum == 4) { MessageBox.Show(buttonnum.ToString() + "번을 누르셨군요"); } else if (buttonnum == 5) { MessageBox.Show(buttonnum.ToString() + "번을 누르셨군요"); } }
반응형