草庐IT

winforms-interop

全部标签

c# - WinForms TreeView 中的三态复选框

我有一个TreeView,它允许用户通过选中或取消选中每个项目的复选框来选择分层数据的某些元素。目前,我使用checkboxhidingtechniquefromanotherquestion在有子节点的节点上禁用该框,像这样:☑Node1☐Node2•Node3☑Node3.1☑Node3.2•Node4☐Node4.1☑Node4.2但更好的解决方案是为父节点使用三态复选框,如下所示:☑Node1☐Node2☑Node3☑Node3.1☑Node3.2☒Node4☐Node4.1☑Node4.2由于此功能在Win32中可用,我的问题是如何在不自己绘制框的情况下执行此操作(例如,作为

c# - 使用 Microsoft.Office.Interop.Excel 从 excel 2010 中读取数据

我无法读取Excel中的数据。这是我正在使用的代码:usingExcel=Microsoft.Office.Interop.Excel;Excel.ApplicationxlApp=newExcel.Application();Excel.WorkbookxlWorkbook=xlApp.Workbooks.Open(@"Book1.xlsx",0,true,5,"","",true,Excel.XlPlatform.xlWindows,"\t",false,false,0,true,1,0);Excel._WorksheetxlWorksheet=(Excel._Worksheet)

c# - 如何在 winform 和 wpf 中以编程方式进行鼠标移动、单击、右键单击和按键等操作?

如何在winform和wpf中以编程方式进行鼠标移动、单击、右键单击和按键等操作。如果可能,请帮助我提供代码片段。 最佳答案 如果我正确理解您的问题,那么您想要真正模拟输入。在这种情况下,SendInput是可行的方法。来自thislinkPInvoketoSendInput–thisistheofficialwaytosimulateinput.Itpushestheinputthroughalloftheexpectedcodepaths,andisindistinguishablefromrealinput.一个简单的使用方法

c# - 如何将类似控制台的元素添加到 c# winforms 程序

我有一个监视调试消息的程序,我尝试使用TextBox并将消息附加到它,但它不能很好地扩展,并且当消息数量变大时速度会变慢。然后,我尝试了一个ListBox,但在添加新消息时,滚动会快速移动到顶部。它也不允许像文本框那样进行剪切和粘贴。在winforms窗口中实现类似控制台的元素的更好方法是什么。编辑:我仍然希望能够嵌入像visualstudio这样的输出窗口,但由于我无法找到一种简单的方法,因此我使用了两种解决方案。除了使用有效的RichTextBox之外,您还必须时不时地清除它。我使用pinvoke的控制台。这是我为处理此问题而编写的一个小包装类。usingSystem;usingS

c# - 哪个运行时性能更快 : WPF or Winforms?

我知道WPF更复杂、更灵活,因此可以考虑进行更多计算。但是由于渲染是在GPU上完成的,对于相同的应用程序(功能和视觉),它不会比Winforms更快吗?我的意思是,当您不运行任何游戏或进行繁重的3D渲染时,GPU不会执行繁重的工作,对吧?而CPU总是很忙。这是一个有效的假设还是WPF的GPU利用率是其管道中非常小的操作?编辑:我感兴趣的应用程序是一个3d建模和动画软件,您可以在其中使用3d视口(viewport)导航和编辑场景以及场景中的对象。但我想使用WPF,因为它的现代架构,而且是从头开始。EDIT2:同样出于我的目的,由于软件的高端要求,我将对应用程序本身使用DirectX。至于

C# WinForms - 任何人都知道 C# GDI 库而不是 SLOW GDI+

GDI+非常慢,几乎完全是软件,而GDI是高度硬件加速的。GDI+是Graphics类在WinForms上使用的东西,它太慢了。有没有人制作了.NETGDI库以便我们可以有速度?[编辑]许多人都在推荐OpenGL/DirectX。我的一个要求是客户端兼容性,尤其是远程桌面。AFAIK远程桌面不支持开箱即用的OGL/DirectX。[/EDIT] 最佳答案 GDI+中的文本呈现比GDI慢。Microsoft在.NET1.1之后意识到了这一点。这就是为什么.NET2.0包含一个新的TextRenderer包装GDI的类DrawText.

c# - 如果内容字符串宽度大于 ListBox 宽度,Winforms DotNet ListBox 项目是否自动换行?

嗯,嗯,这意味着一些行的大小应该是两行的。我的老板认为这是更简单的解决方案,而不是将显示的文本限制为适合宽度并且不喜欢水平滚动条>_ 最佳答案 lst.DrawMode=System.Windows.Forms.DrawMode.OwnerDrawVariable;lst.MeasureItem+=lst_MeasureItem;lst.DrawItem+=lst_DrawItem;privatevoidlst_MeasureItem(objectsender,MeasureItemEventArgse){e.ItemHeight=

c# - Winforms 进度条不更新 (C#)

在我的程序中[C#+winforms]。我有进度条和ListView。通过一种方法,我正在执行一些操作,然后更新Listview中的数据。添加的记录数是我为ProgressBar.value属性设置的值。我在这里想要的是,根据进度条的值,它应该显示它的进度。但是进度条没有得到更新。仅在方法执行进度条结束时显示整个进度,即100%有人可以在这方面帮助我吗?谢谢,阿米特 最佳答案 听起来您正在阻塞UI线程-即您还没有释放系统来进行任何绘画。一个hacky的答案是将Application.DoEvents()注入(inject)到您的代码

c# - 在文本框中显示列表<String> (Winforms)

菜鸟问题...我正在尝试在文本框中显示一个列表...不幸的是,我的代码只显示列表中的第一个元素...privatevoidForm1_Load(objectsender,EventArgse){Listvegetables=newList();vegetables.Add("tomato");vegetables.Add("carrot");vegetables.Add("celery");vegetables.Add("potato");textBox1.Text=displayMembers(vegetables);}publicstringdisplayMembers(Listv

c# - 如何在winform的中心设置控件?

您好,我正在尝试在表单中心设置控件(即标签或文本框)。我在最大化该表单时需要它。我可以静态或动态设置它吗?任何人有想法请尽快告诉我... 最佳答案 将控件放在中心并将Anchor属性设置为None。 关于c#-如何在winform的中心设置控件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10786835/