1

我正在尝试实施Luke Quinane对此问题的回答以与 Microsoft Access 一起使用。

我使用的代码正是答案中发布的代码,但为了方便起见,我将其放在下面。可以说,我的 Windows 窗体由一个面板和一个按钮组成:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Process p = Process.Start("MSACCESS.exe");
        p.WaitForInputIdle();
        SetParent(p.MainWindowHandle, panel1.Handle);

    }

    [DllImport("user32.dll")]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}

Microsoft Access 启动正常,但每当我尝试将其放在面板内时就会消失。

每当我替换MSACCESS.exe为 时notepad.exe,程序都会按预期使用记事本运行。

是否需要做一些额外的事情才能使此过程与 Microsoft Access 一起使用?

4

0 回答 0