본문 바로가기
→ 개발/WPF

[WPF C#] 새로띄운 창(유저컨트롤)에서 값, 버튼 이벤트 가져오기

by 벅스쭌 2010. 8. 6.
반응형


지금 프로젝트를 유저컨트롤로 만들고 다른 프로젝트에 넣을 것 입니다. 그리고 여기에 보이는 "바로가기" 버튼을 누르면


다음과 같이 새로운 프로젝트에서 버튼 이벤트를 받아서 받은값 (여기에서는 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() + "번을 누르셨군요");
            }
        }
반응형