当用户点击Excel中的某个单元格时,我会创建一个新的Windows窗体。然后我使用以下命令将表单放在最上面。
FormName.TopMost = True
FormName.TopMost = False
当我这样做时,Windows窗体会从Excel应用程序中窃取键盘输入焦点。我仍然希望键盘输入进入Excel应用程序。我怎么能这样做?
答案 0 :(得分:0)
尝试将表单ShowModal属性设置为False。这将允许表单浮动,但允许您选择下面的单元格等。
答案 1 :(得分:0)
试试这个(C#,但你可以轻松翻译):
(TOOLWINDOW
只是为了好玩。)
Form f = new Form2();
f.StartPosition = FormStartPosition.Manual;
f.Location = new Point(x, y);
f.Show(new SimpleWindow { Handle = (IntPtr) excelApp.Hwnd } );
class SimpleWindow : IWin32Window {
public IntPtr Handle { get; set; }
}
public class Form2 : Form {
private const int WS_EX_TOOLWINDOW = 0x00000080;
protected override CreateParams CreateParams {
get {
var cp = base.CreateParams;
cp.ExStyle = WS_EX_TOOLWINDOW;
return cp;
}
}
protected override bool ShowWithoutActivation {
get {
return true;
}
}
}