Articles of winforms

如何释放占用的内存

我的项目中有一个主窗口,主窗口中还有许多其他的子窗口。 我注意到。 当我打开主窗口占用内存1500K时,打开一个子窗口时就增加了占用内存6000K。 当我打开第二个窗口做同样的事情。 当我closures两个子窗口时,占用的内存不会被释放。 所以我想要的是当我closures子窗口时释放占用的内存。 我怎么能做到这一点? 如果可能的话,请在vb.net中给我一些代码示例。 这个问题经常在Local NET上的计算机上而不是在我的计算机上(开发人员计算机上有SQL服务器)。

需要关于用不可见的WinForm应用程序replaceWindows服务的build议

我需要一个后台应用程序来支持我的客户端应用程序,它应该始终在客户端机器上运行,而不pipe主客户端应用程序是否正在运行。 Windows Service是我的第一select,但是我面对的Windows Service的问题是:通过主客户端应用程序轻松控制Windows服务,向Windows服务发布和安装修补程序,以及在Windows服务无法运行时进行故障排除。 所以,我开始考虑替代Windows服务,并发现Windows窗体应用程序没有可见的forms可以为我做。 这个无形的应用程序应该从系统启动开始,并始终运行,完成Windows服务所要做的所有工作。 但在进一步深入发展之前,我想探讨这种方法的优缺点。 对此方法有何build议/评论?

ElementHost中的Application.Current为null

我在我个人的Libs中使用WPF UserControl。 这些Libs包含在我的WPF和WindowsForms程序中。 现在我的UserControl必须显示一个新的(WPF)窗口。 在新窗口中,我想设置所有者。 我这样做: dialog.Owner = Application.Current.MainWindow; 这工作正常,如果我在WPF程序中使用UserControl。 当我在我的WindowsForms程序中使用UserControl(我在elementHost.Child = …设置UserControl)是Application.Current null。 这不好,我的程序引发exception。 为什么Application.Current空?

Control.FindForm和ContainerControl.ParentForm有什么区别?

我想知道如果有Control.FindForm和ContainerControl.ParentForm之间的任何function(或其他)的区别? 我一直在使用.ParentForm时创build我自己的用户控件,但会有任何原因.FindForm将是一个更好的select? 从我可以告诉,他们总是会返回相同的forms(即用户控件的forms,或空)。 是.ParentForm只是调用.FindForm或有一个时间,两者可能是不同的(也许与mdi窗口)?

C#语言:如何冻结窗体中的ListView控件?

我需要冻结列表视图中的某些列,所以当用户水平滚动冻结列将不会受到影响(如在Excel中),但没有冻结(布尔)属性,如在datagrid中。 这可以在ListView控件中完成吗? 谢谢

在WinForms中调整单个控件的大小

如何devise一个在C#/ WinForms恰好包含几个不同的控件types,如果用户调整窗口大小只有ListView控件resize的用户界面?

如何“停靠”/附加winformsforms

我想在同一个应用程序中附加两个窗体,就像一些音乐播放器,比如winamp,在窗户可以拆开或者连接在一起,然后移动一个窗口到另一个窗口太! 描述这种行为可能有更好的术语 任何模式或代码样本,这样做?

使用C#编程检测Windowslogin尝试

我想开发一个Windows窗体应用程序来监视我的networking计算机login,注销和login尝试的细节,并根据检测做一些事情。 (例如发送一些pipe理员通知) 我曾经尝试过: 我读了Windows服务,使用任务计划程序的Windows任务计划和事件审计,但我想实事求是地做到这一点。 所以我的问题是如何检测窗口login尝试编程使用C#?

.Net 3.5 Windows窗体应用程序:64位Vista上的x86与x64加载时间

我们正在开发Winforms应用程序,并正在优化启动时间。 该应用程序运行在64位Vista机器上。 在我们的testing中,我们发现什么似乎是一个直观的结果。 其他所有的情况相同,只有一半的时间针对32位和64位的负载。 任何人都可以谈到为什么? 谢谢。 [编辑]我们通过ClickOnce部署应用程序,从我们的研究开始在一个独特的沙箱应用程序。 所以它总是冷冷的开始,所以看起来提高性能在这里是徒劳的。 我们的主要问题是项目中存在32位dll。 一旦我们在x86上定位项目(即使它在x64上运行),加载时间减半。 [/编辑]

寻找一个可靠的Forms.Screen.DeviceName映射到监视EDID信息

我正在开发一个应用程序,该应用程序将在相应的显示器上的对话框中显示来自EDID块(监视器型号,ID,S / N等)的信息。 此代码适用于查找显示器的EDID信息。 它通过枚举HKLM \ SYSTEM \ CurrentControlSet \ Enum \ DISPLAY \ [Monitor] \ [PnPID] \ Device Parameters \ EDID下的DISPLAY键来提取EDID信息。 更新:上面的代码是依靠PnP使用registry的“副作用”。 我现在正在使用SetupAPI枚举监视器,它可以正确处理监视器的连接/删除(不像上面链接的代码)。 我试图关联Windows.Forms.Screen.AllScreens [](\\。\ DISPLAY1,\\。\ DISPLAY2等)中的每个屏幕与从上面的registry检查返回的条目。 注意:在下面的代码块中,DisplayDetails.GetMonitorDetails()现在已经被使用SetupAPI的更健壮的registry枚举代码replace,但返回的数据是相同的。 例如 private void Form1_Load(object sender, EventArgs e) { Console.WriteLine("Polling displays on {0}:", System.Environment.MachineName); int i = 0; foreach ( DisplayDetails dd in DisplayDetails.GetMonitorDetails()) { Console.WriteLine( "Info: […]