草庐IT

WinForms

全部标签

c# - 在更新期间停止 TextBox 闪烁

我的WinForms应用程序有一个文本框,我将其用作日志文件。我正在使用TextBox.AppendText(string);附加文本而不使表单闪烁,但是当我尝试清除旧文本时(当控件的.Text属性达到.MaxLength限制时),我变得很糟糕闪烁。我使用的代码如下:publicstaticvoidAddTextToConsoleThreadSafe(TextBoxtextBox,stringtext){if(textBox.InvokeRequired){textBox.Invoke(newAddTextToConsoleThreadSafeDelegate(AddTextToCon

c# - 在 visual studio 2010、2012 中自动导入库的快捷方式是什么(如果有的话——比如 Netbeans 中的 Alt+Enter)?

我不知道在C#winform/windowstore...应用程序中自动生成命名空间导入的快捷按钮在哪里,比如Alt+EnterNetBeanIDE中的快捷方式。我和我的一些friend已经在visualstudio中编程了好几年,但是当我们需要导入库时,我们必须将光标移动到类代码之后,然后单击以显示namespace,如下所示:谢谢你的帮助:) 最佳答案 尝试使用CTRL+.打开快速修复,这将为您提供不同的选项来修复此类错误,包括为正确的命名空间添加usings——如果VS发现引用中的有效类型。

c# - 删除(x);它会处理元素 x 吗?

每次用户单击下一张图像时,我有一个缓存来存储最近的两张图像,“RemoveAt(x)”是否处理x图像,或者我想要的是删除的图像不在内存中.将被完全删除。ListBackimageList=newList();privatevoidBackimageListCache(Imageimg){BackimageList.Add(img);if(BackimageList.Count>2){BackimageList.RemoveAt(0);//oldestimagehasindex0}} 最佳答案 .NET中的集合不“拥有”对象。所以他们

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# - 如何从 Windows 窗体应用程序的 DataGrid 中的选定行获取值?

标题是不言自明的。我有一个用于Windows窗体应用程序的DataGrid,我希望能够存储选定行的值。执行此操作最简单的方法是什么?我在搜索中找到了这段代码作为示例,但当DataGrid排序不同时不起作用:privatevoidgrdPatients_CurrentCellChanged(objectsender,EventArgse){introw=grdPatients.CurrentRowIndex;grdPatients.Select(row);ArrayListarrayList=newArrayList();for(inti=0;i 最佳答案

c# - 从 DataTable 填充时如何禁用 DataGridView 图像列中的空图像

我有一个现有的应用程序,它有一个新要求,即在DataGridView单元格中显示图像以指示记录是否具有与之关联的特定标志(用户不可编辑,这来自数据库)。如果有标志,我会显示相应的图像,如果没有标志,我不想在列中显示任何内容。DataGridView列不是在VisualStudio设计器中创建的,否则这很容易。我可以只在列上设置NullValue属性。相反,列是在运行时创建的,当所有数据都加载到DataTable中时,然后从该DataTable创建DataView,然后将DataGridView的数据源设置为DataView。我不能完全重写它,否则我将只在VSDesigner中定义列,而

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# - 取消 ListBox SelectedIndexChange 事件

是否可以取消winforms应用程序上列表框的SelectedIndexChange事件?这似乎是合乎逻辑的事情,我必须忽略一些简单的功能。基本上,我一直在弹出一个消息框,询问用户是否真的想移动到另一个项目,因为这会改变UI,我不希望他们的更改丢失。如果用户没有保存他们正在处理的内容,我希望能够取消该事件。有更好的方法吗? 最佳答案 您无法取消它。几天前我所做的是让一个变量包含最新选择的索引。然后当事件触发时,您询问用户是否要保存,这是在事件处理程序中完成的。如果用户选择“取消”,您将再次更改ID。问题是这会使事件再次触发。所以我用