C#EXE相互引用实现

  • 原创
  • |
  • 浏览:1019
  • |
  • 更新:

一般都习惯.dll文件的引用,而实际上.exe文件和.dll文件一样,是可以直接引用的。这里介绍一个多人相互配合引用.exe的例子。

工具/原料

  • VS2013
  • 了解C#、WPF语法

方法/步骤

  1. 1

    新建一个WPF工程。点击【新建项目】弹出新建项目窗口,在C#模板下选择【WPF应用程序】,输入项目名称:WPF_EXE引用,点击【确定】

    C#EXE相互引用实现
  2. 2

    在MainWindow.xaml页面中添加菜单,控制界面打开和程序退出,代码如下:

    <Window x:Class="WPF_EXE引用.MainWindow"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            Title="MainWindow" Height="350" Width="525" Closing="Window_Closing" >

        <Grid>

            <Menu x:Name="mainMenu"  HorizontalAlignment="Left" VerticalAlignment="Top"  Height="23">

                <MenuItem Header="文件(_F)" >

                    <MenuItem Header="帮助"  />

                    <Separator/>

                    <MenuItem Header="退出" Click="MenuItem_Click_退出" />

                </MenuItem>

                <MenuItem Header="设置(_S)" >

                    <MenuItem Header="MTF设置"  />

                </MenuItem>

                <MenuItem Header="自动AA开启及调试" Click="MenuItem_Click" />

            </Menu>

        </Grid>

    </Window>

    C#EXE相互引用实现
  3. 3

    在MainWindow.xaml.cs页面中添加如下代码:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    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 WPF_EXE引用

    {

        /// <summary>

        /// MainWindow.xaml 的交互逻辑

        /// </summary>

        public partial class MainWindow : Window

        {

            public MainWindow()

            {

                InitializeComponent();

            }

     

            private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)

            {

                雷赛卡界面.Hide();

                雷赛卡界面.Close();

            }

     

            public dynamic 雷赛卡界面 = null;

            public double[] mtfs;

            private void MenuItem_Click(object sender, RoutedEventArgs e)

            {

                雷赛卡界面.Show();

                this.Topmost = false;

                雷赛卡界面.TopMost = true;

            }

     

            private void MenuItem_Click_退出(object sender, RoutedEventArgs e)

            {

                this.Close();

            }

        }

    }

    C#EXE相互引用实现
  4. 4

    添加一个名为MTF5的新类。可点击VS菜单项中的【项目】在其下拉菜单中找到【添加类】并点击,弹出添加新项窗口,在点击C#项中【类】,输入名称MTF5,点击【添加】按钮

    C#EXE相互引用实现
  5. 5

    在MTF5.cs页面中添加复制粘贴如下代码:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using WPF_EXE引用;

     

    public class MTF5

    {

        public static void 启动(dynamic Form, ref double[] mtfs)

        {

            MainWindow a = new MainWindow();

            a.mtfs = mtfs;

            a.雷赛卡界面 = Form;

            Form.Hide();

            a.Show();

        }

    }

    C#EXE相互引用实现
  6. 6

    在当前解决方案中添加一个WinForm工程。选中【解决方案...】上点击右键,弹出右键菜单,选中【添加】,出现子菜单,选中【新建项目】点击,弹出添加新项目窗口。选择【Windows窗口应用程序】,在项目名称中输入想要的名称,这里为:雷赛卡界面程序,然后点击【确定】

    C#EXE相互引用实现
  7. 6
    相关内容未经授权抓取自百度经验
  8. 7

    在雷赛卡界面程序中添加引用WPF_EXE引用。选中WinForm程序下的【引用】,弹出右键菜单,点击其中的【添加引用】。弹出引用管理器,在【解决方案】中,勾选中WPF工程,然后点击【确定】,完成引用。

    C#EXE相互引用实现
  9. 8

    在Form1中添加如下代码:

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Windows.Forms;

     

    namespace 雷赛卡界面程序

    {

        public partial class Form1 : Form

        {

            public double[] mtfs = new double[5];

            public Form1()

            {

                InitializeComponent();

                this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);

                MTF5.启动(this, ref mtfs);

            }

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)

            {

                if (this.Visible)

                {

                    e.Cancel = true;

                    this.Hide();

                }

                else

                {

                    e.Cancel = false;

                    //this.Show();

                    //System.Threading.Thread.Sleep(2000);

                }

            }

        }

    }

    C#EXE相互引用实现
  10. 9

    将WinForm程序(雷赛卡界面程序)设为启动项目。选中【雷赛卡界面程序】项目,弹出右键菜单,点击【设为启动项目】。

    C#EXE相互引用实现
  11. 10

    分别编译WinForm程序和WPF程序。按F5执行,可以查看两窗口切换情况了。

    C#EXE相互引用实现
    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部