草庐IT

winforms

全部标签

c# - WinForms 中如何处理不可见控件的绘制?

我试图覆盖.NETCompactFramework中窗口窗体的OnPaint事件。到目前为止,我已经能够绘制带有渐变、圆角矩形等的控件,而这通常是常规控件无法实现的。但是,当我想让控件不可见时,我遇到了问题。现在,我所做的是重新绘制除那些不可见控件之外的所有控件。由于这需要一些时间,因此会导致一些闪烁。有谁知道Windows如何处理绘制“不可见”控件?或者你能建议任何算法或方法来实现这一点。 最佳答案 您应该做几件事。不要直接在OnPaint中向您提供的Graphics对象上绘画。绘制到后台缓冲区,最后将其绘制到图形。覆盖OnPai

windows - 异步 WCF 调用在客户端中处理不当

这是场景。我有一个遵循基于异步事件设计模式的WinForm应用程序(C#、.NET3.5)。主控件(MainResultControl)根据用户请求创建子控件(ResultControl)的多个实例。每个子控件都有一组独特的参数供用户选择。然后每个子控件异步调用WCF服务:WebServiceClient.GetResultsAsync(Parametersparam)每个子控件还注册了Web服务的GetResultsCompleted事件WebServiceClient.GetResultsCompleted+=_service_GetResultsCompleted()这是我们面临

.net - Windows重启后如何自动启动自己的可执行文件?

假设我有一个在Windows上运行的C#.NET2.0+应用程序。在某个特定的时间点,它会强制Windows重新启动。Windows重新启动后如何自动再次启动此应用程序以继续程序执行某些工作?我需要以某种方式在代码中完成,但我不知道如何做。指出我,请提供一些关于此的信息或一些代码会很棒。谢谢! 最佳答案 有几个选项。1将其注册为Windows服务。2在开始按钮的启动部分放置一个链接3在注册表(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)中创建一个条目最好的是第一种,因为这是自

c# - 在 Windows 窗体上绘制多个自定义矩形控件的最快方法是什么

背景我正在用c#.net构建一个Windows应用程序(winforms)。主窗体需要显示一个仪表板控件,它基本上是一个资源调度程序。时间在底部运行。在y轴上运行的项目。我过去用过ComponentGoResourceScheduler对于这类东西,但这次我需要更多的定制。所以我想建立自己的。我需要能够在表单上绘制矩形。大小基于开始和结束时间。我需要能够为矩形完全着色,还需要半填充。矩形需要在上方和下方有一个标签/文本。我需要能够捕获矩形上的鼠标事件。鼠标移动、双击等我需要能够在显示的“时间”发生变化时重新绘制矩形——即向前移动、向后移动(底部的按钮)。这是所需布局的模型:问题我基于P

python - 使用 wxPython 强制经典 Windows 主题

最近我在寻找一些非正统的东西。我想让我的应用程序看起来像在旧的Windows2000中,使用经典的Windows样式。不幸的是,wxWidgets默认使用XP的list。我发现我可以通过不添加wx.rc来禁用它,但我不知道如何使用Python和wxPython来完成它。py2exe默认删除list,但我不使用它。如何强制wxPython绘制旧主题Windows控件? 最佳答案 wxPython在2.8.10.1中修复了这个问题。参见http://lwn.net/Articles/333584/对于变更公告。看起来“list”现在是以

c# - 根据 c# 中的窗口大小调整框

我一直在用C#开发一个项目,我的起始框尺寸非常小,700像素x450像素。在那个尺寸上一切看起来都很棒,但是当我最大化它时,所有的表格等都保持相同的尺寸,只是贴在窗口的一角。我很好奇是否有一种方法可以使框根据实际窗口窗体的大小进行相应调整,这样如果他们单击最大化按钮,它看起来就不会很奇怪。我在网上看了很多,但我尝试过的一切似乎都不奏效。我也在使用visualstudio2013。感谢您的帮助! 最佳答案 我不确定我是否100%理解发生了什么,如果我只是在说您已经知道的事情,请原谅我,但是可以锚定表单内部的控件。这是有帮助的,因为——

c# - 在目录中搜索特定文件名

我正在尝试在系统上的所有卷上搜索特定文件名,系统卷信息或Windows目录除外,并打印出每个文件的每个完整路径。我试过使用Directory.GetFiles,但它只能在驱动器C:\或驱动器D:\中搜索(取决于指定的驱动器)我怎样才能实现我的目标?例如我想运行程序并搜索名为“.DS_Store”的文件(以前使用mac,现在我的文件系统中充满了这些文件....)如果有任何帮助,我将不胜感激。提前谢谢你更新。程序应该以管理员权限执行才能工作 最佳答案 作为cryptolocker分析的一部分,我写了一个定位目标扩展的原型(prototy

windows - REG EXPORT HKLM\System\CurrentControlSet - Windows 错误

我正在测试Windows驱动程序软件。当测试失败时,我必须将注册表数据附加到错误。我明白了"ERROR:Unabletowritetothefile.Theremaybeadiskorfilesystemerror."当我运行以下命令时REG导出HKLM\System\CurrentControlSet.\Reg-data\CCS.reg(我在管理员模式下运行命令)。这种情况很少发生。这可能是由驱动程序软件引起的吗?或者这可能是一个通用的操作系统问题? 最佳答案 您没有提供目标文件名来告诉REG将导出的数据写入何处。C:\>rege

c# - 切换 RIDEV_CAPTUREMOUSE 时的奇怪行为 | RIDEV_NOLEGACY

我正在用C#编写一个使用原始输入的鼠标对象。该设备注册并获取数据和所有这些东西,所以它在这方面是有效的。然而,在这个对象上我有一个名为“Exclusive”的属性,它是为了模仿直接输入中的独占模式。当我将此属性切换为TRUE时,我调用RegisterRawInputDevices并将RAWINPUTDEVICE的dwFlags成员设置为:RIDEV_CAPTUREMOUSE|RIDEV_NOLEGACY。当我将该属性设置为FALSE时,我将其设置为0。现在的问题是当我从鼠标按钮按下/向上事件执行此操作时。在我的鼠标对象上,我分配鼠标按钮按下事件以将Exclusive设置为TRUE,而在

c# - 查找串行设备 COM 端口

我有一个WindowsC#应用程序。该应用程序通过串行端口连接到RFID读卡器。虽然我默认给它COM端口3。我遇到了用户端口不可用并且他正在使用的端口与他的Windows操作系统不同的情况。我的应用程序确实为用户提供了更改COM端口的能力,但是要找到他们的操作系统正在使用哪个COM端口,用户需要转到设备管理器并进行检查,新手可能不太适应。有没有一种功能或方法可以准确地找到我的RFID卡在Windows中连接到哪个端口,以便我可以简单地显示如下:应用程序端口设置为:COM....操作系统上的设备连接端口:COM....另外我的目标框架是3.5编辑1:尝试使用SerialPort.GetP