Tag: winforms

如何打开第二张表格?

我的项目中有Form1和Form2。 Form2只是一个Form1设置的表单。 从Form1打开Form2的命令是什么,请关闭它的命令是什么?

如何获取Windows资源管理器显示的文件类型图标?

第一个问题在这里 我正在开发一个用C#(.NET 3.5)编写的程序,它在listview中显示文件。 我想让“大图标”视图显示Windows资源管理器用于该文件类型的图标,否则我将不得不使用这样的现有代码: private int getFileTypeIconIndex(string fileName) { string fileLocation = Application.StartupPath + “\\Quarantine\\” + fileName; FileInfo fi = new FileInfo(fileLocation); switch (fi.Extension) { case “.pdf”: return 1; case “.doc”: case “.docx”: case “.docm”: case “.dotx”:case “.dotm”: case “.dot”:case “.wpd”: case “.wps”: return 2; default: return 0; } } 上面的代码返回一个整数,用于从我填充了一些常用图标的图像列表中选择一个图标。 它工作正常,但我需要在阳光下添加每个扩展! 有没有更好的办法? 谢谢!

面向未来的大型UI应用程序 – 使用2008 Feature Pack的MFC,还是C#和Winforms?

我公司开发了一种使用Visual C ++中的MFC作为UI开发的事实标准的长期产品。 我们的代码库包含大量遗留/古代代码,必须保持运行。 其中一些代码比我早(最初写于70年代末期),我们团队的一些成员仍在使用Visual Studio 6。 然而,幸运的是,内部已经得出结论,与我们的竞争对手相比,我们的产品看起来有点陈旧,并且需要做些什么。 我目前正在开发UI的一个新领域,它与产品的其他部分完全不同。 因此,我有机会尝试将“新”技术堆栈作为一种试验场,然后再开始移动UI的其余部分。 我在业余时间使用C#和Windows Forms以及.net框架一段时间并享受它,但我有点担心互操作引起的麻烦。 虽然UI的这个特定分支不需要与传统的C ++代码库进行太多的互操作,但我可以预见这将成为未来的问题。 另一种方法是继续使用MFC,但尝试利用VS2008附带的新function包。 我想这是最简单的选择,但我担心长寿,而不是利用.net的优点…… 那么,我选哪个? 我们是一个小团队,所以我的建议很可能被接受为我们未来的发展方向 – 我希望能够做到这一点。 MFC死了吗? C#/ Winforms是前进的方向吗? 还有什么我完全不知道的吗? 非常感谢!

为什么我会看到使用本机代码增加约20%的速度?

知道为什么这个代码: extern “C” __declspec(dllexport) void Transform(double x[], double y[], int iterations, bool forward) { long n, i, i1, j, k, i2, l, l1, l2; double c1, c2, tx, ty, t1, t2, u1, u2, z; /* Calculate the number of points */ n = (long)pow((double)2, (double)iterations); /* Do the bit reversal */ i2 = n >> […]

.NET WinForms INotifyPropertyChanged在更改一个绑定时更新所有绑定。 更好的方法?

在Windows窗体应用程序中,触发INotifyPropertyChanged的属性更改将导致窗体从绑定对象读取每个属性,而不仅仅是属性已更改。 (参见下面的示例代码) 这似乎是荒谬的浪费,因为界面需要更改属性的名称。 它在我的应用程序中导致大量计时,因为某些属性getter需要执行计算。 如果没有更好的方法,我可能需要在我的getter中实现某种逻辑来丢弃不必要的读取。 我错过了什么吗? 有没有更好的办法? 不要说使用不同的演示技术 – 我在Windows Mobile上这样做(尽管行为也发生在完整的框架上)。 这里有一些玩具代码来演示这个问题。 单击该按钮将导致即使一个属性已更改,也会填充两个文本框。 using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace Example { public class ExView : Form { private Presenter _presenter = new Presenter(); public ExView() { this.MinimizeBox = false; TextBox txt1 = new TextBox(); txt1.Parent = this; txt1.Location = new Point(1, 1); […]

如何确定您的WinForms应用程序是否可以使用Internet连接?

确定WinForms应用程序是否有可用的Internet连接的最佳方法是什么。 (当然是以编程方式)如果用户未连接到Internet,我想禁用/隐藏某些function。

除了按钮之外,如何禁用表单上的所有控件?

我的表单有数百个控件:菜单,面板,分割器,标签,文本框,您可以命名。 除了单个按钮之外,有没有办法禁用每个控件? 按钮之所以重要,是因为我无法使用禁用窗口的方法,因为一个控件仍然需要可用。

如何从C#中的SQL查询结果中填充类?

我有一个这样的课: public class Product { public int ProductId { get; private set; } public int SupplierId { get; private set; } public string Name { get; private set; } public decimal Price { get; private set; } public int Stock { get; private set; } public int PendingStock { get; private set; } } 我可以从我的数据库中获取这些细节,如下所示: […]

没有明确的ServicePointManager.SecurityProtocol调用,在.NET 4.7中没有协商TLS 1.2

我需要升级.NET应用程序以支持在仅支持TLS 1.2的网站上调用API。 根据我的阅读,如果应用程序的目标是4.6或更高,那么默认情况下它将使用TLS 1.2。 为了测试我创建了一个面向4.7的Windows窗体应用程序。 不幸的是,当我没有明确设置ServicePointManager.SecurityProtocol时,它会出错。 这是代码: HttpClient _client = new HttpClient(); var msg = new StringBuilder(); // If I uncomment the next line it works, but fails even with 4.7 // ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; var httpWebRequest = (HttpWebRequest)WebRequest.Create(“https://sandbox.authorize.net”); httpWebRequest.KeepAlive = false; try { var httpWebResponse = (HttpWebResponse) httpWebRequest.GetResponse(); msg.AppendLine(“The HTTP request Headers for the […]

显示ListView中项目的上下文菜单

现在, 拜托 ,我知道如何在我右键单击listView时弹出一个contextMenu,我想要的是当我右键单击一个项目时弹出它。 我正在尝试建立一个聊天服务器和客户端,现在……现在我想在我右键单击连接的客户端项目时查看客户端信息。 现在我该怎么做? 谢谢!