加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C#/WPF 不同窗口间的通信

(2011-10-10 16:58:27)
标签:

c

wpf

不同

窗口

通信

代理

delegate

it

分类: 编程技术
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
///TestWindow.xaml.cs文件
namespace Test
{
    /// <summary>
    /// 窗口间的通信:代理
    /// Added by 华仔103 [2011-10-10]
    /// </summary>
    public delegate void TestEventHandle();
    /// <summary>
    /// TestWindow.xaml 的交互逻辑
    /// </summary>
    public partial class TestWindow : Window
    {
        public event TestEventHandle testMainWindow;
        Button TestButton = new Button();
        public TestWindow()
        {
            this.InitializeComponent();
            
            // 在此点之下插入创建对象所需的代码。
            TestButton.Click += new RoutedEventHandler(TestButton_Click);

        }


          /// <summary>
          /// 点击按钮时发生
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          void TestButton_Click(object sender, RoutedEventArgs e)
          {
              OnTestMainWindow();
          }

         /// <summary>
         /// 代理按钮的Click事件
         /// Added by 华仔103 [2011-10-10]
         /// </summary>
          public void OnTestMainWindow()
          {
              if (testMainWindow != null)
              {
                  testMainWindow();
              }
          }
    }
}
///MainWindow.xaml.cs文件
namespace Test
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
         /// <summary>
        /// 测试窗口
        /// </summary>
        private TestWindow m_TestWindow = new TestWindow();

         /// <summary>
        /// 主窗口的入口函数
        /// </summary>
        public MainWindow()
        {
        /// 初始化窗口组件
            this.InitializeComponent();
        m_TestWindow.testMainWindow += new TestEventHandle(m_TestWindow_testMainWindow);
        m_TestWindow.Show();
    }

        /// <summary>
        /// 点击TestWindow的TestButton时发生
        /// Added by 华仔103 [2011-10-10]
        /// </summary>
        private void m_TestWindow_testMainWindow()
        {
            MessageBox.Show("点击TestWindow的TestButton时发生");
        }
    }
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有