草庐IT

Winforms

全部标签

c# - 绘制图像时 : System. Runtime.InteropServices.ExternalException: GDI 中发生一般性错误

我有一个从Panel创建的全局图形对象。每隔一定时间从磁盘中拾取图像并使用Graphics.DrawImage()绘制到面板中。它在几次迭代中工作正常,然后我得到以下有用的异常:System.Runtime.InteropServices.ExternalException:AgenericerroroccurredinGDI+.atSystem.Drawing.Graphics.CheckErrorStatus(Int32status)atSystem.Drawing.Graphics.DrawImage(Imageimage,Int32x,Int32y)atSystem.Drawi

c# - 如何在多个线程之间进行通信?

我正在为另一个程序编写一个插件,该程序使用native程序打开一系列文件以从中提取一些数据。我遇到的一个问题是这个过程需要很长时间,我想防止用户界面挂起。另外,我还想让用户能够在流程完成之前取消该流程。过去,我曾为此类事情使用过后台工作程序,但在这种情况下,我认为BackgroundWorker不会起作用。要通过我正在使用的API创建插件,可以通过从IAPICommand接口(interface)继承来创建自定义命令。该接口(interface)包括一个Execute(Applicationapp)方法。然后实例化该类,当用户在程序中调用自定义命令时,程序将调用Execute()方法。

c# - c# Windows 窗体应用程序中的表

我的Winform应用程序需要一个表格,我的问题是最好的控件是什么。在我的表中,我需要:在用户添加后添加列...表格单元格中的值经常更新并包含String类型和double。我在网上搜索了某种表格模板或任何其他设计控件的示例,但没有成功,我知道java和c++有很多这样的类型。如果您可以向我推荐此类网站...谢谢。 最佳答案 DataGridView应该够了。有很多示例和教程,从MSDNone开始通过sometips与控制相关,最后是更复杂的示例(不一定仅适用于DGV)与databinding.

c# - 静态一次性元素

我应该如何管理带有一次性元素的static类?有什么经验法则吗?基本上,我应该重构并制作以下​​DisposableDataManager类非-静态还是将所有内容留给GC好吗?.publicstaticclassDisposableDataManager{//ImageListisan'IDisposable'.publicstaticImageListFirstImageList{get;privateset;}publicstaticImageListSecondImageList{get;privateset;}staticDisposableDataManager(){Firs

c# - 如何设置属性网格的列宽?

我在我的应用程序中使用属性网格来显示对象属性的名称和值。默认情况下,列(名称和属性)的宽度比例为50:50。我们可以选择滑动分离器来改变这个宽度。我想知道如何以编程方式调整此宽度,以便将其设置为25:75。 最佳答案 我发现hamed的解决方案不能可靠地工作。我已经通过以编程方式模拟用户拖动列拆分器来解决它。以下代码使用反射来执行此操作:publicstaticvoidSetLabelColumnWidth(PropertyGridgrid,intwidth){if(grid==null)return;FieldInfofi=gri

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# - 在C#应用程序中,DB Connection应该创建一次,还是每次执行SQL语句时创建一次?

在C#应用程序中,OleDBConnection应该创建一次,还是每次执行SQL语句时创建一次?我正在查看其他人编写的C#代码。每个SQL语句之前都会创建一个OleDbConnection对象,该对象的连接字符串指向MDB数据库。每次都创建一个OleDbConnection对象是否合适,或者该对象是否应该在应用程序启动时创建并从那时起使用。 最佳答案 根据BestPracticesforUsingADO.NET:Highperformanceapplicationskeepconnectionstothedatasourceinus

C#: "using"实例化表单时?

我正在查看其他人编写的一些C#代码。每当实例化并显示表单时,都会完成以下操作。这个对吗?为什么要在这种情况下使用“使用”?MyFormf;using(f=newMyForm()){f.ShowDialog();}附加问题:可以用下面的代码代替吗?using(MyFormf=newMyForm()){f.ShowDialog();} 最佳答案 WinForms中的一个Form实现了IDisposable模式(它继承了Component的IDisposable,原作者是正确确保值将通过using语句处理。

c# - C# 中的 BringToFront()

我这里有一个为客户制作的应用程序,但有时他不知道订单是否已到达,因为他玩魔兽世界时音量已达到最大。但他说如果有新订单到达,他希望我的小通知窗口出现在他的游戏顶部。所以,我想我可以只使用BringToFront();这似乎在全屏应用程序最大化时起作用。但是,我注意到在全屏播放V8Supercars时,BringToFront();不会将通知窗口置于游戏顶部,因此我认为某些游戏有另一种方式来确保他们始终掌控一切。我如何确保无论何时我需要查看我的表单,它总是显示在其他任何内容之上? 最佳答案 form.TopMost=true;form.

c# - 如何将图标或图像添加到 Visual Studio 2010 中的选项卡

我想在选项卡标题中放置一个图标,这样this看起来像this. 最佳答案 您可以通过这种方式在VS设计器中执行此操作:将ImageList添加到您的表单。将TabControl的ImageList属性设置为包含图标的ImageList。将TabControl中每个TabPage的ImageIndex或ImageKey属性设置为您想要显示的图像。如果您想在代码中完成所有操作,请按照以下说明进行操作。usingSystem.Drawing;usingSystem.Windows.Forms;publicclassForm1{public