Label
从另一个线程更新a的最简单方法是什么?
我有一Form
对thread1
,并从我开始另一个线程(thread2
).虽然thread2
在处理一些文件,我想更新Label
在Form
用的当前状态thread2
的工作.
我怎样才能做到这一点?
微软应该已经实现了一些有趣的东西INotifyPropertyChanged
,就像在自动属性中一样,只需指定{get; set; notify;}
我认为这样做很有意义.或者有任何并发症吗?
我们自己可以在我们的属性中实现类似'notify'的内容.是否有一个优雅的解决方案,INotifyPropertyChanged
在您的班级实施或唯一的方法是通过提高PropertyChanged
每个属性中的事件.
如果没有,我们可以写一些东西来自动生成一段代码来引发PropertyChanged
事件吗?
我想要实现的非常简单:我有一个Windows窗体(.NET 3.5)应用程序,它使用一个路径来读取信息.用户可以使用我提供的选项表单修改此路径.
现在,我想将路径值保存到文件中供以后使用.这将是保存到此文件的众多设置之一.该文件将直接位于应用程序文件夹中.
我理解有三种选择:
我读到.NET配置文件没有预见到将值保存回来.至于注册表,我想尽可能远离它.
这是否意味着我应该使用自定义XML文件来保存配置设置?如果是这样,我希望看到代码示例(C#).
我已经看过关于这个问题的其他讨论,但我仍然不清楚.
我有一个场景.(Windows Forms,C#,.NET)
UserControl_Load
方法,则UI在加载方法执行的持续时间内变得无响应.伪代码看起来像这样:
代码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.
}
}
Run Code Online (Sandbox Code Playgroud)
它给出的例外是
跨线程操作无效:从创建它的线程以外的线程访问控件.
为了更多地了解这一点,我做了一些谷歌搜索,并提出了一个建议,如使用下面的代码
代码2
UserContrl1_LoadDataMethod()
{
if (InvokeRequired) // Line #1
{
this.Invoke(new MethodInvoker(UserContrl1_LoadDataMethod));
return;
}
if (textbox1.text == "MyName") // Now it wont give an exception
{
//Load data correspondin to "MyName"
//Populate a globale …
Run Code Online (Sandbox Code Playgroud) 我有一个带有文本框控件的Windows窗体应用程序,我只想接受整数值.在过去,我通过重载KeyPress事件并删除不符合规范的字符来完成这种验证.我看过MaskedTextBox控件,但是我想要一个更通用的解决方案,可以使用正则表达式,或者依赖于其他控件的值.
理想情况下,这将表现为按下非数字字符将不产生结果或立即向用户提供关于无效字符的反馈.
有没有相对简单的方法将现代浏览器插入.NET应用程序?
据我了解,该WebBrowser
控制是一个包装IE,这不会是一个问题,但它看起来是一个很老版本的IE浏览器,以及所有在CSS螺丝起坐方面需要,潜在的安全风险(如果渲染引擎没有打补丁,我真的可以期待修复多个缓冲区溢出问题吗?)和其他问题.
我正在使用Visual Studio C#(快速版 - 它在这里有什么不同吗?)
我想在我的应用程序中集成一个好的Web浏览器.在某些情况下,我只是使用它来处理用户注册过程,与我的网站的一些功能和该订单的其他东西的接口,但我有另一个应用程序,需要更多错误...控制.
我需要:
我正在考虑Chrome,因为它属于BSD许可证,但我会对最新版本的IE感到满意.
尽可能地,我想保持简单.最好的情况是,如果一个人可以修补现有的WebBrowser
控制,这已经占我所需要的约70%,但我不认为这是可能的.
我找到了一个用于Mozilla的activeX控件(http://www.iol.ie/~locka/mozilla/control.htm),但看起来它是一个旧版本,所以它不一定是一个改进.
我愿意接受建议
我想简单的是/否选择MessageBox,但我认为为此设计一个表单是无稽之谈.我以为我可以使用MessageBox,添加按钮等来实现这一目标.这很简单,但由于没有返回DialogResult,我该如何检索结果?
如何在Windows窗体应用程序中对单选按钮进行分组(很像ASP.NET的radiobuttonlist!)?
所以我可以在从选项中选择的每个案例之间切换.
我有一个文本框,其.Multiline属性设置为true.我会定期添加新的文本行.我希望每当添加新行时,文本框都会自动滚动到最底部的条目(最新的条目).我该如何做到这一点?
我正在寻找一种在C#中的Windows窗体应用程序中实现常用Windows键盘快捷键(例如Ctrl+ F,Ctrl+ N)的最佳方法.
该应用程序有一个主窗体,可以容纳许多子窗体(一次一个).当用户点击Ctrl+时F,我想显示自定义搜索表单.搜索表单取决于应用程序中当前打开的子表单.
我想在ChildForm_KeyDown事件中使用这样的东西:
if (e.KeyCode == Keys.F && Control.ModifierKeys == Keys.Control)
// Show search form
Run Code Online (Sandbox Code Playgroud)
但这不起作用.按键时,事件甚至不会触发.解决办法是什么?
c# ×10
winforms ×10
.net ×5
textbox ×2
dialogresult ×1
invoke ×1
radio-button ×1
scroll ×1
xml ×1