草庐IT

winforms-interop

全部标签

c# - WinForms DataBinding 是否需要 BindingSource 和 BindingList?

我想显示DataGridView中的人员列表在Windows窗体应用程序中。我希望我的服务层返回一个Person对象列表(例如IList)。我希望列表中的更改反射(reflect)在DataGridView中反之亦然。我的理解是使用BindingSource有助于使用DataGridView.我的问题是双向数据绑定(bind)工作,我需要://pseudocodeBindingSource.DataSource=IBindingList或者我可以做:BindingSource.DataSource=IList有什么区别?如果我对列表进行更改,将DataGridView以任何方式更新?如

c# - 如何拦截所有键盘事件并防止在 WinForms 应用程序中失去焦点?

我的一个friend是盲人,我想开发一个程序,让他在盲打法和听觉反馈的帮助下使用PC。如果我的应用程序一启动就可以强制完全控制整个键盘输入,那么体验会更加丰富(针对特定功能使用更多键)和完美无瑕(比如防止偶尔失去焦点)(我会把它放在在为他启动)。我是一名WinFormsC#.NET开发人员,所以我想在使用这个特定框架和语言的应用程序中实现它(尽管不要介意包装的WinAPI调用)。PS:我不介意系统控制Ctrl+Alt+Del组合,但我想控制所有其他键和组合,包括WindowsLogo和标准应用程序启动器按钮。 最佳答案 您可以使用低

c# - 如何修复嵌套的winform控件闪烁问题

我目前正在开发一个程序,该程序使用相当复杂的嵌套winform控件结构,这些控件会随着用户做出某些选择而动态变化。要更详细地了解控件的具体布局,对于这个问题来说太过广泛了。每当做出选择时,都会对由用户控件控制的基础模型进行大量更新。然后,这会导致所显示控件的大小/位置/可见性发生一系列相应的变化。所有这些变化都会导致屏幕上的控件出现令人痛苦的强烈闪烁。我需要以某种方式解决此问题,以便每次用户进行选择时,屏幕基本上会卡住,直到所有控件更新完成。我尝试在许多不同的地方和方式中使用Control.SuspendLayout/Control.ResumeLayout方法,但我无法消除疯狂的闪烁

c# - OLE DB 与 OPEN XML SDK 与 Excel.interop

我需要读取XLSX文件并从中提取最大量的内容。我应该使用哪个API?OLEDB、开放式XMLSDK还是ExcelInterop?哪个最容易使用?您能否使用其中一种检索所有信息?即日期、时间、合并单元格、表格、数据透视表等。 最佳答案 您可以尝试所有这些,然后选择最适合您的...根据您想阅读的数据,我建议您使用OpenXMLoverInterop或OleDB。我不知道开放式XMLSDK,尽管我对EPPlus有一些经验我经常使用的图书馆,只能说它的好话-它快速,易于学习,有很好的例子。该库基于OpenOfficeXML格式,所以我想它与

c# - NotifyIcon 的问题不会在 Winforms 应用程序上消失

我有一个.Net3.5C#Winforms应用程序。它本身没有GUI,只有一个带有ContextMenu的NotifyIcon。我尝试将NotifyIcon设置为visible=false并在Application_Exit事件中处理它,如下所示:if(notifyIcon!=null){notifyIcon.Visible=false;notifyIcon.Dispose();}应用获取括号内的代码,但在尝试设置Visible=false时抛出nullref异常。我在几个地方读到将它放在表单关闭事件中,但该代码从未被命中(也许因为我没有这样显示的表单?)。我可以把这段代码放在哪里才能

c# - Winforms:当有垂直滚动条时,如何以编程方式显示 C# ListView 中的最后一项?

当有垂直滚动条时,如何以编程方式显示C#ListView中的最后一项?我研究了与ListView相关的所有方法,但找不到任何东西。 最佳答案 滚动ListView实际上并不容易/不可能。您需要告诉该项目以确保它可见。varitems=listView.Items;varlast=items[items.Count-1];last.EnsureVisible(); 关于c#-Winforms:当有垂直滚动条时,如何以编程方式显示C#ListView中的最后一项?,我们在StackOverf

c# - 克隆控件 - C# (Winform)

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Itispossibletocopyallthepropertiesofacertaincontrol?(C#windowforms)我必须创建一些类似于设计时创建的控件的控件。创建的控件应该具有与预定义控件相同的属性,或者换句话说,我想复制一个控件。是否有用于该目的的单行代码?或者我必须通过一行代码设置每个属性?我现在正在做的是:ListContainer_Category3=newFlowLayoutPanel();ListContainer_Category3.Location=ListContaine

c# - WinForms DataGridView - 数据绑定(bind)到具有列表属性(列数可变)的对象

我有一个.NET类,我想在DataGridView中显示,默认数据绑定(bind)——将DGV的数据源设置为对象——产生了我90%的要求(即它正确输出公共(public)属性,我可以添加轻松排序)。但是,我需要绑定(bind)的属性之一是一个列表,其中包含需要位于其他数据绑定(bind)项之后的单独列中的数据。我一直在思考如何最好地实现这一点。我的类(class)看起来像这样:publicclassBookDetails{publicstringTitle{get;set;}publicintTotalRating{get;set;}publicintOccurrence{get;se

c# - flowlayout 控件不断在 winforms 中以错误的方向添加控件

我在winforms中有一个flowlayout控件,我已将其流向设置为TopDown但它一直从左到右添加控件,autoscroll也设置为true。flowLayoutPanel1.Controls.Clear();LabellabelInput=newLabel();ListBoxlistBoxNewInput=newListBox();//Initializelabel'spropertylabelInput.Text="#"+Convert.ToInt32(sequence);labelInput.AutoSize=true;//InitializetextBoxesPrope

c# - 我应该用 GTK+ 而不是 WinForms 为 Mono 重写 GUI 吗?

我正在使用VisualStudio、winforms制作应用程序,我正在使用openTK。最近我想让它跨平台。我将使用Mono,因为我不知道其他类似的东西。而且我完全没有使用GTK+的经验。在我的应用中,目前有4个窗口(当然以后会更多)。我想让应用程序在Windows、Linux和OSX上运行得更快。我读过,GTK+比WinForms好,但仍然不确定该选择哪个。那么,我应该为GTK+重新制作所有内容还是继续使用WinForms,为什么?另外,是否有任何工具可以为我完成这项工作? 最佳答案 老实说,您需要告诉我们更多关于您的受众/预期