Questions tagged «winforms»

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


11
如何修复启动时出现异常代码0xE0434352的.NET Windows应用程序崩溃?
我在Visual Studio 2010中构建了.NET Windows窗体应用程序。我还通过Visual Studio 2010构建了相应的安装程序/安装程序包。它是作为32位(x86)应用程序构建的。(我们使用仅32位的第三方Windows窗体控件)。 我能够运行安装程序包并将其成功部署到其他Windows 7 64位环境和32位Windows XP盒中。已安装的应用程序可以在这些程序上正常运行。 但是,当我尝试运行64位Windows Server 2008 R2时,应用程序在启动时崩溃。它通过安装程序成功安装,没有任何错误。 加载应用程序时,它似乎崩溃了。我在应用程序的第一行放置了一个消息框,以查看是否超过了加载时间。该消息框未显示,因此我认为它是在加载/初始化应用程序期间发生的。 到目前为止,我还没有发现太多事情要做。从详细信息中,我看到以下内容: Exception Code: E0434352 我到处钓鱼/谷歌搜索是否有明显的东西,但是什么也没看见。我看到了一些有关CLR中可能的堆栈溢出的引用。 Windows窗体应用程序使用以下参考文件构建: 开发快递 Infragistics Winforms控件 ORACLE DataAccess DLL 兔子MQ 有什么问题 我该如何解决呢?如何调试以获得更多有用的信息?

10
在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke
我有一个SafeInvoke Control扩展方法,类似于Greg D在这里讨论的方法(减去IsHandleCreated检查)。 我从System.Windows.Forms.Form以下方式调用它: public void Show(string text) { label.SafeInvoke(()=>label.Text = text); this.Show(); this.Refresh(); } 有时(此调用可能来自多个线程)会导致以下错误: System.InvalidOperationException 发生 Message=“在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke。 Source=“ System.Windows.Forms” StackTrace: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args) at System.Windows.Forms.Control.Invoke(Delegate method) at DriverInterface2.UI.WinForms.Dialogs.FormExtensions.SafeInvoke[T](T control, Action`1 action) in C:\code\DriverInterface2\DriverInterface2.UI.WinForms\Dialogs\FormExtensions.cs:line 16 怎么回事,如何解决?我知道这不是表单创建的问题,因为有时它一次只能工作一次,而下次又会失败,那么问题可能是什么呢? PS。我真的对WinForms感到很糟糕,是否有人知道一系列很好的文章来解释整个模型以及如何使用它?

17
搜索字符串集合的最快方法
问题: 我有一个大约120,000个用户(字符串)的文本文件,我想将其存储在集合中,然后在该集合上执行搜索。 每当用户更改a的文本时,都会出现搜索方法,TextBox并且结果应为中包含文本的字符串TextBox。 我不必更改列表,只需拉出结果并将其放在即可ListBox。 到目前为止,我已经尝试过: 我尝试了两种不同的集合/容器,它们是从外部文本文件中转储字符串条目(当然是一次): List<string> allUsers; HashSet<string> allUsers; 使用以下LINQ查询: allUsers.Where(item => item.Contains(textBox_search.Text)).ToList(); 我的搜索事件(当用户更改搜索文本时触发): private void textBox_search_TextChanged(object sender, EventArgs e) { if (textBox_search.Text.Length > 2) { listBox_choices.DataSource = allUsers.Where(item => item.Contains(textBox_search.Text)).ToList(); } else { listBox_choices.DataSource = null; } } 结果: 两者都给了我较差的响应时间(每次按键之间大约1-3秒)。 题: 您认为我的瓶颈在哪里?我使用过的收藏?搜索方法?都? 如何获得更好的性能和更流畅的功能?

12
几秒钟后关闭MessageBox
我有一个Windows Forms应用程序VS2010 C#,在其中显示用于显示消息的MessageBox。 我有一个好的按钮,但是如果他们走开,我想超时并在允许说5秒钟后关闭消息框,然后自动关闭消息框。 有自定义的MessageBox(从Form继承)或另一个报告程序Forms,但是有趣的是不必使用Form。 有任何建议或样品吗? 更新: 对于WPF, 在C#中自动关闭消息框 自定义MessageBox(使用表单继承) http://www.codeproject.com/Articles/17253/A-Custom-Message-Box http://www.codeproject.com/Articles/327212/Custom-Message-Box-in-VC http://tutplusplus.blogspot.com.es/2010/07/c-tutorial-create-your-own-custom.html http://medmondson2011.wordpress.com/2010/04/07/easy-to-use-custom-c-message-box-with-a-configurable-checkbox/ 可滚动 的消息框C#中的可滚动的消息框 异常报告器 /programming/49224/good-crash-reporting-library-in-c-sharp http://www.codeproject.com/Articles/6895/A-Reusable-Flexible-Error-Reporting-Framework 解: 也许我认为以下答案是很好的解决方案,无需使用表格。 https://stackoverflow.com/a/14522902/206730 https://stackoverflow.com/a/14522952/206730

7
Windows Forms ProgressBar:启动/停止字幕的最简单方法?
我正在使用C#和Windows窗体。我有一个正常的进度条,可以在程序中正常工作,但是现在我进行了另一项操作,无法轻松计算持续时间。我想显示一个进度条,但不知道启动/停止滚动字幕的最佳方法。我希望能够像设置选取框速度然后具有start()和stop()这样简单的方法,但是它看起来并不那么简单。我是否必须在后台运行一个空循环?我如何最好地做到这一点?谢谢

27
如何检查Windows窗体是否已打开,如果已关闭,则将其关闭?
我有一个表格“ fm”,它是一个简单的信息窗口,每10分钟会打开一次(fm.Show();)。 我如何每隔10分钟检查一次“ fm”表单是否打开,如果打开,则将其关闭并再次打开! 现在,总是使用fm创建表单,form fm = new form(); 所以当我尝试检查表单是否打开时,即使以前有一个表单,它也总是false并打开一个新窗口! 我需要有一个为其赋予唯一标识的工具,然后检查是否打开了具有唯一标识的表单! 我不想只更新表单(fm)上的数据,因为我有一个带有按钮的复杂信息。 表单名称是 "UpdateWindow" 谢谢
79 c#  winforms 

11
如何禁用Alt + F4关闭表格?
停用Alt+的最佳方法是什么F4在ac#win表单中以防止用户关闭表单? 我正在使用窗体作为弹出对话框来显示进度条,但我不希望用户能够将其关闭。
78 c#  .net  winforms 


9
如何设置TcpClient的超时时间?
我有一个TcpClient,用于将数据发送到远程计算机上的侦听器。远程计算机有时会打开,有时会关闭。因此,TcpClient将经常无法连接。我希望TcpClient一秒钟后超时,因此当它无法连接到远程计算机时不需要花费很多时间。当前,我将以下代码用于TcpClient: try { TcpClient client = new TcpClient("remotehost", this.Port); client.SendTimeout = 1000; Byte[] data = System.Text.Encoding.Unicode.GetBytes(this.Message); NetworkStream stream = client.GetStream(); stream.Write(data, 0, data.Length); data = new Byte[512]; Int32 bytes = stream.Read(data, 0, data.Length); this.Response = System.Text.Encoding.Unicode.GetString(data, 0, bytes); stream.Close(); client.Close(); FireSentEvent(); //Notifies of success } catch (Exception ex) { FireFailedEvent(ex); …


9
在.NET中检查目录和文件写入权限
在我的.NET 2.0应用程序中,我需要检查是否存在足够的权限来创建文件并将其写入目录。为此,我具有以下功能,该功能尝试创建文件并向其中写入一个字节,然后删除自身以测试权限是否存在。 我认为最好的检查方法是实际尝试并捕获发生的任何异常。不过,我对一般的Exception捕获并不特别满意,因此,有没有更好的方法,或者也许是一种更可接受的方法? private const string TEMP_FILE = "\\tempFile.tmp"; /// <summary> /// Checks the ability to create and write to a file in the supplied directory. /// </summary> /// <param name="directory">String representing the directory path to check.</param> /// <returns>True if successful; otherwise false.</returns> private static bool CheckDirectoryAccess(string directory) { bool …

6
将新数据写入时,RTF文本框滚动到底部
我的程序调用Java,然后将stdout重定向到RichTextBox。我的问题是,每次写入数据时,垂直滚动条始终位于框的顶部。 即使滚动到底部,一旦写入新数据,它也会移到顶部。我想相反。 因此,当写入新数据时,它停留在底部。我怎样才能做到这一点?

8
如何在WinForms中控制停靠顺序
如标题所示,我正在寻找一种方法来控制项目停靠在控件顶部的顺序。 我曾与Windows窗体设计器一起玩过,但我似乎找不到RightClick->Order->SendToFront正在做什么,因为那正是我想要发生的事情。据我所知,将内容添加到控件中时,最新的内容始终位于顶部,我希望较新的内容位于底部,而最旧的内容位于顶部最佳。 简介: WinForms(C#)中是否有一种简单的方法来控制事物停靠在控件两侧的顺序? 编辑:添加控件时,我必须从后面的代码中执行此操作,我无法使用WinForm设计器的任何功能,但是我想做的是模仿WinForms设计器SendToBack和SendToFront功能
78 c#  winforms  docking 


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.