1581得票47回答
如何从另一个线程更新GUI?

如何用最简单的方式从另一个线程更新Label? 我有一个在thread1上运行的Form,从那里我启动了另一个线程(thread2)。 当thread2处理一些文件时,我想通过Form将Label的当前状态更新为thread2的工作状态。 我该怎么做呢?

751得票35回答
实现INotifyPropertyChanged - 是否存在更好的方法?

微软应该像自动属性那样为INotifyPropertyChanged实现一些简洁的东西,只需指定{get; set; notify;}即可。我认为这很有道理,或者有没有什么复杂性需要处理呢? 我们能否在我们的属性中自己实现类似于“notify”的东西。在您的类中实现INotifyProper...

679得票41回答
如何创建一个只允许输入数字的文本框?

我有一个Windows窗体应用程序,其中包含一个文本框控件,我希望它仅接受整数值。过去,我已经通过重载KeyPress事件并删除不符合规范的字符来进行此类验证。我查看了MaskedTextBox控件,但我需要更通用的解决方案,可以使用正则表达式或依赖于其他控件的值。 理想情况下,这样做会使非...

673得票22回答
跨线程操作无效:从创建它的线程以外的线程访问控件。

我有一个情景(Windows Forms,C#,.NET): 1. 有一个主窗体,其中包含一些用户控件。 2. 用户控件执行一些繁重的数据操作,如果直接调用“UserControl_Load”方法,则UI在加载方法执行期间会变得无响应。 3. 为了克服这个问题,我在不改变现有代码的情况下在不...

652得票14回答
如何在Windows Forms应用程序中保存应用程序设置?

我想实现的很简单:我有一个使用路径读取信息的Windows Forms (.NET 3.5)应用程序。用户可以使用我提供的选项表单修改此路径。 现在,我希望将此路径值保存到文件中以备后用。这将是保存到该文件的许多设置之一。该文件将直接位于应用程序文件夹中。 我了解到有三个选择:     ...

478得票8回答
用更好的浏览器(如Chrome)替换.NET WebBrowser控件?

有没有相对简单的方法将现代浏览器集成到.NET应用程序中呢? 据我所知,WebBrowser控件是IE的包装器,这本来不是问题,但看起来它是非常旧的IE版本,这意味着可能存在CSS错误、潜在的安全风险(如果呈现引擎没有修补程序,那么亿万个缓冲区溢出问题是否已经解决?)以及其他问题。 我正在...

445得票12回答
如何使用OpenFileDialog选择文件夹?

我打算使用如下项目:https://github.com/scottwis/OpenFileOrFolderDialog 然而,存在一个问题:它使用了GetOpenFileName函数和OPENFILENAME结构体。OPENFILENAME有一个名为templateID的成员变量,表示对话框...

434得票18回答
如何从一个事件中移除所有的事件处理程序

为在控件上创建一个新的事件处理程序,您可以这样做。c.Click += new EventHandler(mainFormButton_Click); 或者这个c.Click += mainFormButton_Click; 要移除事件处理程序,您可以执行以下操作c.Click -= main...

426得票11回答
如何创建一个带有“Yes”、“No”选项和DialogResult的消息框?

我想做一个简单的是/否选择消息框,但我觉得为此设计一个表格是没有必要的。我想我可以使用消息框,添加按钮等来完成这个任务。这很简单,但由于没有返回DialogResult,那么我该如何获取结果呢?

361得票13回答
如何实现多行文本框自动滚动到底部?

我有一个文本框,其中的.Multiline属性设置为true。定期添加新的文本行。我希望每次添加新行时,文本框都能自动滚动到最底部(即最新的一行)。如何实现这个功能?