Tag: winforms

如何在.NET中打开记事本中的文本?

当我单击Windows窗体表单上的按钮时,我想打开一个记事本窗口,其中包含表单上TextBox控件的文本。 我怎样才能做到这一点?

如何检查远程IP和端口?

我必须检查远程IP和端口是否可用。如果它可用,它将移动到下一个表单。如果不可用,它应该进入初始状态。我试过使用这个 while (true) { IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties(); IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners(); ——- ——- ——- } 我正在显示示例coding.it正在检查本地IP和端口并转移到下一个form.it将检查本地端口和IP是否可用。如果端口和IP不可用它将进入初始阶段并且它工作正常。我必须检查远程端口和IP。

数据将枚举属性绑定到网格并显示描述

这是一个类似于如何将自定义枚举描述绑定到DataGrid的问题 ,但在我的情况下,我有多个属性。 public enum ExpectationResult { [Description(“-“)] NoExpectation, [Description(“Passed”)] Pass, [Description(“FAILED”)] Fail } public class TestResult { public string TestDescription { get; set; } public ExpectationResult RequiredExpectationResult { get; set; } public ExpectationResult NonRequiredExpectationResult { get; set; } } 我将BindingList 绑定到WinForms DataGridView(实际上是DevExpress.XtraGrid.GridControl,但通用解决方案将更广泛适用)。 我想要出现描述而不是枚举名称。 我怎么能做到这一点? (class / enum / attributes没有约束;我可以随意更改它们。)

BackgroundWorker – 跨线程操作无效

我有一个winform应用程序(一个表单),在这个表单上有一个RichTextBox。 在这个窗体的构造函数中,我创建了一个MyClass类的实例。 在“Form_Load”中,我从MyClass实例调用Initialisation方法。 在表单构造函数中 myClass = new MyClass(RichTextBox richTextBox); 在Form_Load中 myClass.Initialisation(); 在Initialisation方法中,在循环中,我读了一些参数做其他的东西。 要不冻结应用程序(因为某些操作可能需要一段时间,几秒钟),我使用BackgroundWorker 。 我这样使用它(见下面的代码)。 当我执行时,我收到此错误: 跨线程操作无效:控制’richTextBox’从其创建的线程以外的线程访问 。 你能告诉我怎么解决这个问题吗? 当我不访问richTextBox时,工作完美 public Class MyClass { static BackgroundWorker _bw; public MyClass() { _bw = new BackgroundWorker { WorkerReportsProgress = true, WorkerSupportsCancellation = true }; _bw.DoWork += bw_DoWork; _bw.ProgressChanged += bw_ProgressChanged; _bw.RunWorkerCompleted += bw_RunWorkerCompleted; } static void bw_DoWork(object […]

如何在退出时杀死Thread?

父窗体上的按钮用于启动线程。 如果在开发环境中关闭父窗体,则线程将在后台运行,从而阻止在64位Windows 7平台上编辑源代码。 必须通过菜单>调试>停止调试来杀死该线程。 父窗体关闭时以编程方式终止线程的正确方法是什么? private void buttonW_Click(object sender, EventArgs e) { Thread t = new Thread(Main.MyThread); t.Start(); } private static void MyThread() { … }

unit testingWindows窗体应用程序的建议

我已经编写了一个Windows窗体应用程序,现在我想为它编写一些unit testing(不完全是测试驱动的开发,因为我在开发后编写测试但是迟到的时候从未好过!)我的问题是这样的应用程序你如何编写unit testing,因为几乎所有的方法和事件都是私有的? 我听说过NUnit Forms,但是我听到了它的优点和缺点,而且该项目暂时没有真正的发展,所以它看起来已经废弃了。 此外,如果我为用户通过点击/按下按钮触发的所有事件编写unit testing用例,或者我必须为所有人编写unit testing用例,那么该项目已经进行了足够的unit testing方法并找出一种方法来测试我的私有方法? 编辑:我的业务逻辑与我的表示逻辑分离,我的业务逻辑公开了1或2个公共方法,因此表单可以访问它们,但是业务逻辑中的所有私有方法呢?

具有相同数据源的多个combobox(C#)

更新:现在已解决,请参阅下面的答案。 在我的一个表单(在Windows窗体应用程序中)我有3个combobox。 这些combobox需要显示价格列表(在文本中,带有整数后端值)。 所有这些combobox都使用相同的数据源(TSPrice类型的A List ,ValueMember设置为Price,DisplayMember设置为Description)。 我的问题是这样的…每次我从其中一个下拉菜单中选择一个价格选项时,它们都会变为相同的值…这是否与它们绑定到同一个数据源有关? 这是我如何约束他们: var priceList = new List { new TSPrice(0, “”), new TSPrice(0, “Half Day”), new TSPrice(0, “Full Day”), new TSPrice(0, “1 + Half”), new TSPrice(0, “2 Days”), new TSPrice(0, “Formal Quote Required”) }; objInsuredPrice.DataSource = priceList; objTPPrice.DataSource = priceList; objProvSum.DataSource = priceList; objInsuredPrice.ValueMember = “Price”; objTPPrice.ValueMember = “Price”; […]

我如何使我的表格透明,但我画的不是?

我尝试将表单的不透明度设置为50%,然后在其上绘制一个字符串。 似乎我在其上绘制的字符串也具有50%的不透明度。 我如何绘制非透明字符串,但让表单背景显示50%? 如果可能的话,也愿意在WPF中这样做,但我需要明确的指示或示例项目,因为我以前从未这样做过。 为了澄清,我希望表单背景是一个黑色的80%不透明的底部,然后我想在它上面绘制文字等,让它看起来100%不透明。

C#图形闪烁

我正在研究一种绘图程序,但是在绘制橡皮带线时移动鼠标光标时出现闪烁问题。 我希望你可以帮我删除那条闪烁的行,这里是代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace GraphicsTest { public partial class Form1 : Form { int xFirst, yFirst; Bitmap bm = new Bitmap(1000, 1000); Graphics bmG; Graphics xG; Pen pen = new Pen(Color.Black, 1); bool draw = false; public Form1() { InitializeComponent(); […]

Winforms中带有水平文本的垂直制表符控件

我希望我的TabControl上的标签显示在左侧,有时是右侧。 但是,与System.Windows.Forms.TabControl不同,我希望文本保持水平而不是向水平方向旋转90度或270度。 这里有几张图片说明了这个概念 虽然我可以在大约一两个小时内自己编写代码来执行此操作,但我只是想我会先询问是否存在实现此类function的Winforms控件。 注意:任何现有的解决方案最好是非商业性的。 谢谢。