我有一个 winforms 应用程序,但我想在该应用程序中引入一个 WPF 用户控件,作为进一步 WPF 实现的品尝者。
该控件需要从其主机接收一条信息,即字符串。如何将其从 Winforms 应用程序传递到托管控件?
或者说,我确实可以吗?
我需要使用此代码从运行时创建的窗口获取线程 ID
System.Windows.Window MyWindow = new System.Windows.Window();
MyWindow.Show();
Run Code Online (Sandbox Code Playgroud)
我正在使用窗口处理程序
IntPtr WindowHandle = (new WindowInteropHelper(MyWindow)).Handle;
Run Code Online (Sandbox Code Playgroud)
如何从窗口或其相应的处理程序中获取线程 ID?
我有一个使用 Excel Interop 生成 Excel 电子表格的 Winforms 应用程序。
当我尝试以这种方式保存工作表时:
_xlBook.SaveAs(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Run Code Online (Sandbox Code Playgroud)
...它会失败,告诉我,“ System.Runtime.InteropServices.InvalidComObjectException 未处理 HResult=-2146233049 Message=COM 对象已与其底层 RCW 分离,无法使用。 ”
不过,这没有多大意义——我并没有对线程之类的东西做任何花哨的事情;这是一个非常简单的香草实用程序。代码中唯一引用 _xlBook 的其他地方是:
1)
private Excel.Workbook _xlBook;
Run Code Online (Sandbox Code Playgroud)
2)
_xlBook = _xlApp.Workbooks.Add(Type.Missing);
Run Code Online (Sandbox Code Playgroud)
3)
_xlSheets = _xlBook.Worksheets;
_xlSheet = (Excel.Worksheet)_xlSheets.Item[1];
Run Code Online (Sandbox Code Playgroud)
4)
_xlBook.Close(false);
Marshal.ReleaseComObject(_xlBook);
Run Code Online (Sandbox Code Playgroud)
_xlBook 被处理的最后一部分是从表单的 Deactivate 事件调用的,它是:
private void FormMain_Deactivate(object sender, EventArgs e)
{
DeinitializeExcelObjects();
}
Run Code Online (Sandbox Code Playgroud)
问题是(我在所有引用 _xlBook 的地方放置断点后发现的)FormMain_Deactivate() 在 _xlBook.SaveAs() 被调用之前被调用,当点击“运行”按钮时调用。
一旦我在 FormMain_Deactivate() 中注释掉对 DeinitializeExcelObjects() 的调用,并在调用 _xlBook.SaveAs() 之后立即调用它,它就可以正常工作 - …
有没有办法处理Ctrl+ Alt+ Del组合键.例如,在测验应用程序(Win Forms)中,用户在测试结束之前不应该切换到其他窗口.
我可以使用c#标准属性单独捕获Ctrl和Alt击键.但是一旦他们用户点击了Del密钥.控件不在我的应用程序中,窗口处理它.
任何想法都会有所帮助.
谢谢.
在我的笔记本电脑(戴尔)中,使用网络摄像头时会发出强烈的蓝色二极管光,这让我很恼火。
我正在考虑禁用它。你知道有什么库或方法可以关闭这个二极管灯吗?
我整天都在和这件事打架.我仍然无法找到确切的解决方案.帮帮我.
我的目标非常简单.我想得到其他应用程序的文本框中的文本.它可能是gtalk客户端或soap UI屏幕的文本框.
我用谷歌搜索,大多数论坛建议winapi是我必须用来实现这一目标的概念.我从来没有使用过这个概念,也没有得到任何好的例子.请帮助我解决这个问题,并完成这件事.有没有其他方法来实现这一目标?
等待你的回应...