草庐IT

winforms-interop

全部标签

c# - 从 Winforms 控制 cmd.exe

问题:我想在winforms中控制cmd.exe我并不是说单个进程中的每个命令,带有启动信息,然后停止。我的意思是例如启动(我的)SQL或GDB命令提示符,发送命令,接收答案,发送下一个命令,接收下一个答案,停止SQL命令提示符退出流程。基本上我想在任何控制台应用程序之上编写一个GUI。我想将cmd.exe的输出重定向到一个文本字段,而输入来自另一个文本字段(按下回车/确定按钮)。我没有找到任何样本。有办法吗? 最佳答案 CodeProject上有一个很好的例子祝你好运!-编辑:我认为这更像它,我创建了一个简单的表单、2个文本框和三

c# WinForms - 在单击某些项目后防止 ContextMenu 关闭

我正在使用System.Windows.Forms.ContextMenu。我想这样做,所以当您单击某些按钮时,它不会关闭菜单。现在我让它工作,只要你点击一个,它就会在同一位置重新打开菜单。唯一的问题是它看起来很糟糕,因为您可以看到菜单闪烁。有没有更好的方法来做到这一点?WPF的ContextMenu具有StaysOpen属性,但WinForms没有。(有什么方法可以使用WPF的ContextMenu吗?)我不想使用ContextMenuStrip,它可以做到这一点,因为ContextMenu看起来好多了。编辑:我不会将此标记为解决方案,因为这样做不好。如果您需要按照我的问题进行操作,

c# - WinForms 文本框的自定义插入符号

我正在WinForms.Net2.0应用程序中开发自定义super终端应用程序。我在面板中有一个多行文本框,您可以在其中与硬件设备进行交互。我的客户想要一个自定义插入符号,一个大小为一个字符空间的填充矩形,而不是默认的垂直线。我知道.Net默认不提供执行此操作的选项,但必须有一些Windows函数才能执行此操作。 最佳答案 这些是Windows提供的nativeCaret函数列表,您可以将它们用于您的应用程序。[DllImport("User32.dll")]staticexternboolCreateCaret(IntPtrhWn

c# - Microsoft Office 互操作性能问题

我尝试在我的C#4.0Windows应用程序中将datagridview数据导出到excel文件。我们使用了Microsoft.Office.Interop.Exceldll版本12.0.0.0。一切都很好很好。但是当我尝试导出超过1000条datagridview记录时,它花费的时间太长了时间。我怎样才能提高性能。请参阅下面的Excel帮助程序代码。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.IO;usingMicrosoft.Office.Inte

c# - 如何在 WinForms 和 C# 中创建下拉菜单

我是VisualStudio/WinForms/C#的新手我正在尝试创建一个简单的下拉菜单,其中每个项目都可以有一个值和一个标签。如果我正在创建一个网络应用程序,这就是我在HTML中所做的。但是我如何使用C#和WinForms做到这一点呢?PleaseselectOneThefirstOptionsTheSecondOptionsTheThirdOptions我试过ComboBox,但似乎不允许我添加值和标签,用户仍然可以输入他们想要的任何内容。我尝试了一个ListBox,但它也不允许我使用值和标签。 最佳答案 如果你想要一个值和一

c# - 如何将扩展的 WinForms 控件放在工具箱上

我计划通过以下方式向TextBox添加功能:publicclassTextBoxExt:TextBox{protectedoverridevoidOnKeyPress(KeyPressEventArgse){base.OnKeyPress(e);}}问题是我们如何使用这个TextBoxExt?有没有办法把这个类放到工具箱上,这样我们就可以把它拖放到窗体上?如果没有,使用TextBoxExt的最佳方式是什么? 最佳答案 使用TextBoxExt构建您的项目,确保它编译正常。在你想要TextBoxExt的窗体上,打开工具箱,右击并选择“

c# - Winforms 位置

我有一个包含2个form的应用程序,主窗口和第二个Form。我想要的是在点击按钮时打开第二个Form,它的位置必须在主窗体旁边(所以如果主窗体是600px宽,新Form的X将是main.X+600)已经试过了,但似乎没有用,它仍然在主窗体之上打开:privatevoidbutton1_Click(objectsender,EventArgse){varform=newSecondForm();varmain=this.Location;form.Location=newPoint((main.X+600),main.Y);form.Show();}Location不是正确的属性吗?

c# - 跨线程操作无效(How to access WinForm elements from another module events?)

我有一个带有串行端口信号事件的模块serialPort.DataReceived.AddHandler(SerialDataReceivedEventHandler(DataReceived));DataReceived在哪里letDataReceivedab=rxstringProcessData正在调用WinForms方法letProcessData(a,b)=dataProcessor.Invoke(a,b)|>ignore这是privatevoidProcessData(objectsender,EventArgse){byte[]m=Core.ncon.ArrayRead;s

c# - 将 VB.NET Winforms 应用程序移植到 C#

是否有将VB.NETwinforms应用程序移植到C#的“好”资源?我敢肯定有一些软件只能翻译代码,但我希望同时重构代码。将其保持在当前形式是有问题的,因为它使用了一些VB.NET允许的“不良设计”做法,并且会使future的维护进一步复杂化。这里有没有人经历过这个过程,你是怎么做到的?您是否使用了翻译/重构方法?您是否只是使用最终产品来重新创建功能,而没有查看其中大部分的当前代码库?您(共同)会推荐什么?更新:正如我告诉Grauenwolf的那样,将其保留为当前语言会带来以下问题:无法轻松添加功能。VB.NET不是我坚如磐石的语言。我很欣赏学习该语言并将其移植过来的讽刺意味——但fu

c# - 防止 WinForm AcceptButton 处理返回键

我有一个带有连接到AcceptButton属性的按钮的表单,这样当用户按下Return键时逻辑就会发生并且表单会关闭。在该表单上,我显示了一个动态创建的TextBox,它会在用户双击某个区域时出现,然后在用户按下Return时隐藏。当TextBox具有焦点时用户按下Return时如何防止表单处理按键?我试图说按键是在TextBox.KeyDown事件处理程序中通过KeyEventArgs.Handled处理的,但是Button.Click我的接受按钮事件首先被触发... 最佳答案 虽然在TextBox具有焦点时重置FormsAcce