草庐IT

Winforms

全部标签

c# - 透明背景同时捕获鼠标事件?

这里似乎有一个与此类似的问题,但有“相反”的问题(他不想捕获鼠标事件)。我有一个带有面板的表单。该窗口是无边界的,并设置为面板的确切大小(出于所有意图和目的,就好像面板是“自由float”的)。我可以将面板的BackColor设置为SystemColors.Control,然后将窗口的TransparencyKey设置为相同。这是因为它实现了预期的效果(透明度),但面板无法再捕获鼠标事件(这对功能至关重要)!是否有其他解决方法,或者重新启用鼠标捕获的方法?我已经尝试覆盖OnPaintBackground并执行noop,但这并没有实现真正的透明度,因为它不会在每次滴答后更新背景(因此无论

.net - DataGridView 性能 - 是否取决于视频卡?

我有一个C#/.Net应用程序,它似乎使用大部分CPU时间来更新DataGridView。我大约每1.5秒手动更新一次数据,只更新已更改的数据。这最终是每1.5秒大约250次更新。我想将这1.5秒减少到更小的数字(可能是0.5秒)。我已经尽可能多地分析和优化,虽然性能还可以,但我希望它更快。我的问题是,将视频卡从NvidiaFX1800升级到NvidiaFX3800会产生显着的加速吗? 最佳答案 GDI+操作不太依赖于图形CPU,因为它仅使用每个图形卡都支持的基本加速操作(线条、矩形等)。我猜这里的问题是您在更新期间没有“隐藏”控制

c# - 如何使用自己的消息泵运行表单?

我有一个应用程序,我需要在其中打开许多与我自己不同并独立运行的表单。然后我的应用程序继续阻止长时间运行的操作(使这些操作异步是不可能的)。因此,我想使用它们自己的消息泵在单独的线程上运行这些表单。有什么办法吗? 最佳答案 Application.Run();这应该在它自己的线程上启动表单,带有它自己的消息泵。编辑:http://en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0%E2%80%94Application_Lifetime由于每当调用App

.net - 向其动态添加控件时如何使面板滚动保持在顶部?

我正在将用户控件添加到一个空的面板,但是当我这样做时,面板的滚动条向下滚动。我试图将panel.verticalscrol.value设置为0,但这并不能解决问题。谢谢 最佳答案 使用panel.ScrollControlIntoView(). 关于.net-向其动态添加控件时如何使面板滚动保持在顶部?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7668119/

c# - 跳过 Aero 窗口动画

如何以编程方式禁用Aero下窗口的“打开”动画?当打开一个新表单时,它会“弹出”(淡入+轻微的缩放转换)。我想停止这个动画并立即显示窗口。我已经尝试将Form的Location属性设置到屏幕外的某个位置,然后调用Show(),然后将其移动到正确的位置。但这没有帮助,动画将继续。也许我可以设置一些隐藏属性?我不想全局禁用打开/关闭/最小化/最大化动画!我只想跳过窗口的“窗口打开”动画。我已经尝试过在Form.Show()之后直接调用单个和多个ShowWindow(...)。但无论我传递什么参数,都不会中止开场动画。 最佳答案 我知道了

c# - 是否可以创建可以在 Windows 中以编程方式登录用户的服务或应用程序

是否有可能创建一个服务或应用程序,它可以在Windows服务器(2003和2008)启动时以编程方式登录用户。如果可能,如何用C#编写程序,以及如何挂接窗口。 最佳答案 如果您创建一个Windows服务项目,您可以创建一个包含ServiceInstaller对象的ProjectInstaller,该对象的一个​​属性是该服务是否在系统启动时自动启动。您还可以指定希望它在哪个帐户下运行,包括用户名和密码,作为ProjectInstaller的ServiceProcessInstaller对象的属性。有关如何创建此类服务的教程,请查看t

windows - 在 Win32 应用程序中使用 Windows 窗体

我需要创建一个Win32应用程序。我正在使用VisualStudio。我真的很喜欢在Windows窗体中设计我的应用程序,它允许以图形方式设计我的窗口。但是,我不能(仅)使用Windows窗体。我必须使用Win32应用程序。现在,当我创建Win32应用程序时,我无法想象以图形方式设计我的窗口。有没有办法将Windows窗体合并到Win32应用程序中?还是图形化设计Win32窗口?(如果有一种方法可以以图形方式设计Win32应用程序GUI而只有我想不出来,我将不胜感激这样做的资源或方法。) 最佳答案 在Win32应用程序中,您可以包含

c# - 如何保存表单的状态?

我构建了一个Windows窗体应用程序,其中包含一些窗体。我想在某种形式上创建一个按钮来保存它的状态。例如,如果我有一个文本框,用户在其中键入“Hello”并按下保存按钮,当他返回此表单时,文本框仍会显示“Hello”。我希望它只在程序的同一次执行中发生,这意味着当程序关闭并重新打开时,文本框不会再说“你好”(我相信这就是为什么设置不符合我的需要,因为它们保持执行之间的变化)。 最佳答案 由于您只希望窗体在应用程序运行时保持其状态,因此解决方案非常简单:永远不要关闭窗体,只需将其隐藏即可。当您准备好再次显示它时,显示它。它会重新出现

c# - 使用语音命令启用和禁用语音识别

我的问题分为两部分。有没有办法使用语音命令启用语音识别。有没有一种方法可以在禁用语音识别的同时,让它继续监听或启用命令以告知它何时再次启用语音识别。这就是我的想法:case"StopListening":synthesizer.speakasync("Ok");recEngine.RecognizeAsyncStop();//Commandorcodeherethatwait'sforthecommand"StartListening"recEngine.RecognizeAsyncStop"until"case"StartListening"break;我知道这行不通,因为没有“un

c# - 在 ComboBox 中输入关键问题,AutoCompleteMode 设置为 Append

在AutoCompleteMode设置为追加。我们知道在widows表单中,当ComboBox中的AutocompleteMode属性设置为Append时,我们会在键入完整内容之前获取值项目的文本。问题在这里:我单击下拉按钮并打开下拉菜单我尝试输入一些字符,我得到了预期的值并完成了文本。但是当我按下Enter时,它会删除组合框的文本。我怎样才能拥有Append选项,并在下拉菜单打开时按下Enter,保留输入的文本而不删除它。我尝试了“自动完成模式”属性中的“无”选项,它工作正常,但没有附加数据....我不需要“自动完成模式”属性中的建议和建议附加选项,因为它会打开另一个下拉窗口....