我正在尝试在Luke Quinane上实现this question的答案,以便与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一起使用,我还需要做些什么吗?