Questions tagged «winforms»

WinForms是Windows Forms的非正式名称,Windows Forms是Microsoft .NET Framework和Mono中的GUI类库。此标签中的问题还应使用目标框架([.net]或[mono])进行标签,并且通常应使用编程语言标签进行标签。


30
实现INotifyPropertyChanged-是否存在更好的方法?
微软应该为它实现一些快速的功能INotifyPropertyChanged,例如在自动属性中,只需指定{get; set; notify;} 我认为这样做是很有意义的。还是有任何并发​​症要做? 我们自己可以在属性中实现“通知”之类的功能吗?是否有一个优雅的解决方案可以INotifyPropertyChanged在您的类中实现,还是唯一的解决方法是PropertyChanged在每个属性中引发事件。 如果不能,我们可以写一些东西来自动生成引发PropertyChanged 事件的代码吗?

22
跨线程操作无效:从创建该线程的线程以外的线程访问控件
我有一个场景。(Windows窗体,C#、. NET) 有一个主窗体可以承载一些用户控件。 用户控件执行一些繁重的数据操作,因此,如果我直接调用该UserControl_Load方法,则UI将在装入方法执行期间无响应。 为了克服这个问题,我将数据加载到不同的线程上(尝试尽我所能更改现有代码) 我使用了一个后台工作线程来加载数据,完成后将通知应用程序它已经完成了工作。 现在出现了一个真正的问题。所有UI(主窗体及其子用户控件)均在主主线程上创建。在usercontrol的LOAD方法中,我基于userControl上某些控件(如文本框)的值获取数据。 伪代码如下所示: 代码1 UserContrl1_LoadDataMethod() { if (textbox1.text == "MyName") // This gives exception { //Load data corresponding to "MyName". //Populate a globale variable List<string> which will be binded to grid at some later stage. } } 它给的例外是 跨线程操作无效:从创建该线程的线程以外的线程访问控件。 要了解更多信息,我进行了一些谷歌搜索,并提出了一条建议,例如使用以下代码 代码2 UserContrl1_LoadDataMethod() { if (InvokeRequired) …

30
如何制作仅接受数字的文本框?
我有一个带有文本框控件的Windows窗体应用程序,我只想接受整数值。过去,我通过重载KeyPress事件并删除不符合规范的字符来进行这种验证。我已经看过MaskedTextBox控件,但是我想要一个更通用的解决方案,它可以使用正则表达式,也可以依赖于其他控件的值。 理想情况下,这样做是为了使按下非数字字符不会产生任何结果,或者会立即向用户提供有关无效字符的反馈。
582 c#  .net  winforms  textbox 

14
如何在Windows窗体应用程序中保存应用程序设置?
我想要实现的非常简单:我有一个Windows Forms(.NET 3.5)应用程序,该应用程序使用读取信息的路径。用户可以使用我提供的选项表单来修改此路径。 现在,我想将路径值保存到文件中以备后用。这将是保存到该文件的众多设置之一。该文件将直接位于应用程序文件夹中。 我了解三个选项可供选择: ConfigurationSettings文件(appname.exe.config) 登记处 自定义XML文件 我读到没有预见到.NET配置文件来将值保存回它。至于注册表,我想尽可能地远离它。 这是否意味着我应该使用自定义XML文件保存配置设置? 如果是这样,我想查看该代码示例(C#)。 我已经看到了有关该主题的其他讨论,但是对我来说仍然不清楚。

22
用更好的浏览器(例如Chrome)替换.NET WebBrowser控件?
有没有相对简单的方法将现代浏览器插入.NET应用程序? 据我了解,该WebBrowser控件是IE的包装器,这不会有什么问题,只不过它看起来像是IE的一个很老的版本,所有这些都涉及CSS破坏,潜在的安全风险(如果未对渲染引擎进行修补,那么我真的可以期望解决不计其数的缓冲区溢出问题吗?)以及其他问题。 我正在使用Visual Studio C#(速成版-在这里有什么区别吗?) 我想在我的应用程序中集成一个好的Web浏览器。在某些情况下,我只是使用它来处理用户注册过程,与我的网站的某些功能进行交互以及按此顺序进行其他操作,但是我想到的另一个应用程序将需要更多错误...控制。 我需要: 可以集成到我的应用程序窗口(而不是单独的窗口)中的浏览器 与任何现代浏览器一样,对CSS,js和其他Web技术的良好支持 基本的浏览器功能,例如“导航”,“后退”,“重新加载” ... 自由访问页面代码和输出。 我一直在考虑Chrome,因为它获得了BSD许可,但我对IE的最新版本同样满意。 我想让事情尽可能简单。最好的办法是修补现有的WebBrowser控件,该控件已经完成了我所需控件的70%,但我认为这是不可能的。 我已经找到了Mozilla的activeX控件(http://www.iol.ie/~locka/mozilla/control.htm),但是它看起来像是一个旧版本,因此不一定是改进。 我愿意接受建议

18
如何从事件中删除所有事件处理程序
要在控件上创建新的事件处理程序,您可以执行此操作 c.Click += new EventHandler(mainFormButton_Click); 或这个 c.Click += mainFormButton_Click; 并删除事件处理程序,您可以执行此操作 c.Click -= mainFormButton_Click; 但是,如何从事件中删除所有事件处理程序?
366 c#  .net  winforms  events 




8
在Windows Forms应用程序中实现键盘快捷键的最佳方法?
我正在寻找在C#的Windows窗体应用程序中实现常见Windows键盘快捷键(例如Ctrl+ F,Ctrl+ N)的最佳方法。 该应用程序具有一个主窗体,该主窗体承载许多子窗体(一次一个)。当用户点击Ctrl+时F,我想显示一个自定义搜索表单。搜索表单将取决于应用程序中当前打开的子表单。 我当时在考虑在ChildForm_KeyDown事件中使用类似的方法: if (e.KeyCode == Keys.F && Control.ModifierKeys == Keys.Control) // Show search form 但这是行不通的。按下某个键时,该事件甚至不会触发。解决办法是什么?


10
如何使光标转向等待光标?
我有一个C#应用程序,有用户登录到该应用程序,并且由于哈希算法昂贵,因此需要花费一些时间。如何向用户显示“等待/忙碌光标”(通常是沙漏),以使他们知道程序正在执行操作? 该项目在C#中。
263 c#  .net  winforms  cursor 


11
将过滤器设置为OpenFileDialog以允许典型的图像格式?
我有这段代码,如何允许它接受所有典型的图像格式?PNG,JPEG,JPG,GIF? 这是我到目前为止的内容: public void EncryptFile() { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; dialog.InitialDirectory = @"C:\"; dialog.Title = "Please select an image file to encrypt."; if (dialog.ShowDialog() == DialogResult.OK) { //Encrypt the selected file. I'll do this later. :) } } 请注意,筛选器设置为.txt文件。我可以更改为PNG,但是其他类型是什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.