草庐IT

Winforms

全部标签

c# - 了解 AttachThreadInput - 分离失去焦点

我在完全理解AttachThreadInput时遇到了一点问题。我知道它正在“连接”2个线程的消息队列,这(我想做的)允许我在前台强制我的窗口(winforms)。我可以用这个方法做什么:privatevoidSetForegroundWindowEx(IntPtrhWnd){uintSW_SHOW=5;uintappThread=GetCurrentThreadId();uintforegroundThread=GetWindowThreadProcessId(GetForegroundWindow(),IntPtr.Zero);if(foregroundThread!=appThr

c# - 从窗口中提取键盘布局

好吧,这是一个有点奇怪的问题。我们有一个触摸屏应用程序(即没有键盘)。当用户需要输入文本时,应用程序会显示虚拟键盘-在WinForms中手工构建。为每种新语言手工制作这些东西是猴子的工作。我认为Windows必须将此键盘布局信息隐藏在某些dll中的某处。无论如何都可以从Windows中获取这些信息吗?欢迎提出其他想法(我认为至少从xml文件生成东西必须比在VS中手动生成更好)。(注意:说了这么多,我注意到有日文键盘、状态机和所有...,所以XML可能不够用)更新:关于这个主题的非常好的系列(我相信)here 最佳答案 Microso

c# - IoC/DI 框架与智能客户端 Winform 应用程序 : How should I approach this?

我正在启动一个新的Winforms应用程序,我打算使用IoC/DI框架(可能是Ninject,但我也在考虑StructureMap和LinFu)。似乎几乎所有使用IoC/DI的人都是在基于Web的环境中这样做,并且几乎没有发现任何与它一起使用Winforms的东西。我想知道是否有人在Winforms中使用IoC/DI以及您使用什么方法来处理Winforms相关问题(例如,您如何使容器在应用程序的各个部分可用,您是否使用实例化表单等的框架。)如果有人知道任何使用IoC/DI的基于Winforms的开源项目(无论哪个框架,我都应该能够翻译概念)我也想要这些链接。编辑:人们不再编写智能客户端

c# - 如何在 C# WinForms 应用程序中创建可编辑的配置设置?

我将配置值保存在app.config中。我想创建一个WinForms应用程序,它在一个表单中显示所有AppSettings值。用户应该能够更改设置值并将它们保存回app.config。 最佳答案 只要您的值位于app.config文件的appConfig部分,您就可以简单地使用System.Configuration.ConfigurationManager。ConfigurationManager.AppSettings-MSDN这是一篇旧博客文章,解释了如何做您正在寻找的事情:Read/WriteApp.config

c# - 将热键/快捷方式文本放在winforms中的工具条菜单项旁边

我希望能够在winforms中显示分配给工具条菜单项的热键组合。例如,在任何程序(甚至您的浏览器设置菜单)中,您都可以看到各种菜单项,通常,与它们的项目右侧对齐的是它们的热键快捷方式。我想以编程方式执行此操作。示例:而不是键入Openafile(ctrl+O)我想让属性彼此独立显示。我怎样才能做到这一点? 最佳答案 您想使用ShortcutKeysToolStripMenuItem的属性。这将使您可以为每个菜单项选择所需的特定组合键,它会显示在菜单项的右侧。确保将ToolStripMenuItem的ShowShortcutKeys属

c# - MonthCalendar 中的奇怪错误突然开始发生

这份崩溃报告是在2天前从我们的许多用户那里收到的。我们的代码没有更新,这个错误发生在多个版本上。其中一些版本已有多年历史,因此更新不会破坏某些东西。这是一个使用Infragistics2014Vol2的.NET4.0应用程序。Infragistics支持似乎认为这是Windows窗体的MonthCalendar中的一个错误,但我无法在网上找到任何东西。从带有故障转储的屏幕截图来看,当他们收到此错误时,所有用户似乎都在单击以下拉日历。我无法复制它。System.InvalidOperationException:Operationisnotvalidduetothecurrentstat

c# - 为什么 ControlCollection 不抛出 InvalidOperationException?

跟随这个问题Foreachloopfordisposingcontrolsskippingiterations让我烦恼的是允许对不断变化的集合进行迭代:例如,以下内容:Listitems=newList{newTextBox{Text="A",Top=10},newTextBox{Text="B",Top=20},newTextBox{Text="C",Top=30},newTextBox{Text="D",Top=40},};foreach(variteminitems){items.Remove(item);}抛出InvalidOperationException:Collecti

c# - 在 100 毫秒内查看大型多页 Tif 图像

我正在使用WinForms。在我的表单中,我有一个pictureBox(设置为normalmode)、下一个和上一个按钮。我想快速调整和加载多页TIF图像。当我转到多页TIF图像的下一页时,每次将图像绘制到pictureBox时都会遇到延迟。图像的平均速度大约需要800毫秒。我希望页面在100毫秒内加载。我希望处理大型TIF图像的性能与IrfanView一样快。IrfanView是一个小型图像查看应用程序。如果您下载IrfanView,您可以看到性能有多快。目前我有另一种解决方案,我使用多线程后台工作程序将TIF页面加载到数组中,然后缩小它。这种方法最初需要一些时间,但这里的目标是不必

c# - 在 Visual Studio 中管理大量重叠控件

我在表单的同一位置使用不同的控件集。默认情况下,所有控件都是visible=false,然后当用户在组合框下拉控件中选择特定值时,控件的某些子集将设置为可见。从用户的角度来看,这很有效,因为他们只会看到需要的控件。但是,由于控件在窗体上占据相同的位置,因此很难在VisualStudio设计View中管理它们。有没有办法在VisualStudio中对这些重叠的控件集进行分组,以便我可以快速轻松地选择整个控件子集?有没有办法在设计View中隐藏某些控件?现在,在开发过程中,所有内容都堆叠在一起,因此很难管理这些控件。 最佳答案 为了让这

c# - 在 VS 2010 的 Winforms 项目中添加 WPF 窗口

在VS2010中选择“添加新项目”时是否可以从winforms项目访问所有WPF项目?默认情况下,我只能访问WPFuserControl。我想将WPF窗口添加到winforms项目中。不仅仅是用户控件。编辑:简短回答:这似乎本身是不可能的,但可以手动添加WPF资源和必要的引用。 最佳答案 显然你不能直接,但你可以做的是添加一个新的用户控件,然后修改代码使其成为一个窗口。只需创建一个新的WPF项目,添加一个窗口,然后查看您需要更改哪些内容才能将您的用户控件变成一个窗口。 关于c#-在VS2