Tag: winforms

ListView – 使用标题分隔符对齐垂直网格线 – 使最后一列填充空格

我正在尝试用C#编写Windows Forms MusicPlayer应用程序。 应用程序应显示一个列表并有一些播放/停止按钮。 我刚开始半小时前,但我的设计差不多完成了。 现在我有三件事需要解决。 一个bug和2个好看的东西: 在图片上你可以看到我发现的错误。 你可能会说这没什么,但它是一个引人注目的人。 我怎样才能解决这个问题? 如何在不使内容居中的情况下对齐列的标题? 如何让最后一列填写listView的其余部分?

什么是Winforms停车窗

这是对此答案的后续问题https://stackoverflow.com/a/20584601/2530848 。 我的印象是Control类没有实现真正的finailzer,所以泄漏的控件永远泄露,在最终确定期间没有清理。 Hans Passant在评论部分提供了一些提示,说明了它,以及一些关键字ParkingWindow 。 我用Google搜索了该关键字,找不到任何有用的资源。 最后我通过反编译器在System.Windows.Forms.Application.ParkingWindow找到了一个名为ParkingWindow的类,我无法理解正在做什么。 它看起来像无人看管的窗户将成为这个停车窗口的父级,并在某些时候被摧毁,但不确定。 问题究竟是什么ParkingWindow及其用途是什么? 编辑:这与Control的Finalization或cleanup有什么关系?

如果没有其他实例打开表单打开 – 将类型传递给方法

我想简化一些代码。 因此,如果某个表格已经打开,我想制作一个检查function。 现在,我的开始表单上的每个按钮后面都有代码。 private void button_parts_Click(object sender, EventArgs e) { FormCollection fc = Application.OpenForms; foreach (Form frm in fc) { if (frm is frm_parts) { return; } } frm_Teile newForm = new frm_parts(); newForm.Show(); } 现在我希望有类似的东西: private void button_parts_Click(object sender, EventArgs e) { StartNewForm(frm_parts); } private void StartNewForm(Type myForm) { FormCollection fc = Application.OpenForms; foreach […]

如何让IsKeyDown方法在C#中工作

我无法弄清楚如何让这个方法工作: System.Windows.Input.Keyboard.IsKeyDown(System.Windows.Input.Key) 对象浏览器说明如下: public static bool IsKeyDown(System.Windows.Input.Key key) System.Windows.Input.Keyboard的成员 摘要: 确定是否按下指定的键。 参数: key:指定的密钥。 返回值: 如果key处于down状态,则为true; 否则,是的。 好的,所以它是键盘的成员,对吧? 我使用了以下代码:Keyboard test = new Keyboard(); 但是当我输入测试然后输入点时,IsKeyDown不是一个选项。 唯一的选项来自Windows.Forms成员。 我在这里想念的是什么? 谢谢。

从Console或Windows服务以编程方式创建Windows会话

如何以编程方式登录到Windows以创建Windows登录会话? 我需要一种适用于WinForms应用程序,来自Console应用程序以及(最重要的)来自Windows服务的方法。 另一个要求是我需要它来运行程序/服务运行的本地系统以及远程系统。 如果有办法使用pInvoke / Win32 API执行此操作,我也会对此持开放态度。 我在研究中发现了类似的问题/答案: 以编程方式创建和启动RDP会话(没有gui) 这里的答案说它是可能的但是提供了一个链接,但链接中的示例代码不起作用 通过Win32 API从服务创建Windows会话 没有解决问题的方法 以编程方式创建Windows会话 没有解决方案,但在http://freerdp.com为他工作的评论中提到了OP。

如何在c#程序中删除事件处理程序代码

当我尝试删除那些空处理程序时,表单会被破坏。 如何在不影响表单的情况下从程序中删除那些恼人的代码?

Winformforms关闭事件

我有两种forms,主要和儿童。 在主窗体上单击按钮时,将加载子窗体。 通过订阅子表单的已关闭事件,可以从主表单中捕获子表单吗?

在Form上的任何位置捕获鼠标单击(不使用IMessageFilter)

当鼠标位于子控件上时,不会调用MouseDown事件。 我试过KeyPreview = true; 但它没有帮助(虽然它适用于KeyDown – 键盘点击)。 我正在寻找类似KeyPreview东西,但是对于鼠标事件。 我宁愿不使用IMessageFilter并处理WinAPI消息,如果有更简单的话。 替代方案(另外, IMessageFilter设置为Application- wide。我只想要Form- wide。)并且迭代所有子控件,订阅每个,都有其自身的缺点。

自定义列表框排序

我需要对包含在多个列表框中的数据进行排序。 用户将能够使用无线电盒在两种不同类型的排序之间进行选择,其中一种默认情况下在表格加载时进行检查。 我已经创建了所需的IF语句,以便测试该单选按钮的检查条件是否为真。 但我需要一些帮助来创建自定义排序算法。 每个列表包含相似的查看数据,每行开始的唯一区别。 例如,第一个列表框中的每一行以前缀“G30”开头,第二个列表框将以“G31”开头,依此类推。 总共有10个列表框(就前缀而言为G30-G39)。 第一个搜索算法必须按前13个字符的数字顺序对行进行排序。 示例:这是排序前数据的外观 G35:45:58:11 JG07 G35:45:20:41 JG01 G35:58:20:21 JG03 G35:66:22:20 JG05 G35:45:85:21 JG02 G35:64:56:11 JG03 G35:76:35:11 JG02 G35:77:97:12 JG03 G35:54:29:11 JG01 G35:55:51:20 JG01 G35:76:24:20 JG06 G35:76:55:11 JG01 这就是排序后应该如何看待 G35:45:20:41 JG01 G35:45:58:11 JG07 G35:45:85:21 JG02 G35:54:29:11 JG01 G35:55:51:20 JG01 G35:58:20:21 JG03 G35:64:56:11 JG03 G35:66:22:20 JG05 G35:76:24:20 JG06 G35:76:35:11 JG02 G35:76:55:11 […]

如何在winform中用位图替换光标

我在c#.net上的鼠标移动控制应用程序中开发了一个放大镜。 我需要用放大镜控件替换光标(放大镜控件是一个图片框)。 无论如何要做到这一点。