→ 개발/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() + "번을 누르셨군요");
}
}
반응형