Articles of winforms

冻结的最后一行DataGridView作为列的总和?

是否可以将DataGridView的最后一行作为列的总和,并且最后一行始终显示/被冻结?

如果可能,在C#中使用FtpWebRequest实现没有第三方dll的FTP / SFTP

我试图通过C#中的FtpWebRequest类来实现ftp / sftp,但直到现在还没有成功。 我不想使用任何第三方免费或付费的dll。 凭证就像 hostname = sftp.xyz.com userid = abc 密码= 123 我能够使用IP地址实现ftp,但无法使用凭据获取上述主机名的sftp。 对于sftp,我已将FtpWebRequest类的EnableSsl属性设置为true,但是获取错误无法连接到远程服务器。 我能够使用相同的凭据和主机名连接Filezilla,但不能通过代码连接。 我观察了filezilla,它将主机名从sftp.xyz.com更改为文本框中的sftp://sftp.xyz.com,在命令行中将用户标识更改为abc@sftp.xyz.com 我在代码中做了同样的事情,但sftp没有成功。 请急需帮助。 提前致谢。 以下是我目前的代码: private static void ProcessSFTPFile() { try { string[] fileList = null; StringBuilder result = new StringBuilder(); string uri = “ftp://sftp.xyz.com”; FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(new Uri(uri)); ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails; ftpRequest.EnableSsl = true; ftpRequest.Credentials = new […]

是否可以将两个重叠的PictureBox控件与透明图像一起使用?

有两个重叠的PictureBox控件 ,我试图让图片框的透明区域让下面的控件(在z顺序中)可见。 即使在尝试微软的建议之后 ,我也无法获得理想的结果。 这就是我目前所拥有的: 这就是我想要的: 所以我的问题是: 用两个相互重叠的PictureBox控件(或另一种方式)实现我想要的结果,让透明区域透过? 更新: 实际上我通过使用这个问题“ 使用C#WinForms透明图像 ”的答案解决了它。

创建自定义winforms容器

我想在winforms中创建一个控件,其行为与容器控件相同。 我的意思是:在设计模式下,当我放下控件时,它会分组,就像combobox一样。 我正在创建的这个控件包含一些其他控件和一个GroupBox。 我需要的是:当控件在我的自定义控件上以设计模式下垂时,我只需将它放在嵌套的GroupBox中。 但我无法弄清楚如何让我的控件在设计模式中对这种动作做出反应。

无效方法有什么作用?

invalidate方法在winform应用程序中做了什么? Invalidate() 方法在System.Windows.Forms 命名空间的 control class中带有六个重载forms。 谢谢…..

C#:如何避免在双击事件中发生TreeNode检查

所以我在C#windows窗体应用程序中有一个TreeView。 我需要的是一些节点被“锁定”,以便根据参数无法检查(或取消选中)它们。 我现在在做的是: private void tv_local_BeforeCheck(object sender, TreeViewCancelEventArgs e) { TNode node = (TNode)e.Node; //if a part node, cancel the action. if (node.Type == “Part”) { e.Cancel = true; } //if a locked node, cancel the action if (node.Locked == true) { e.Cancel = true; } } 只需单击该复选框,此代码就可以正常工作,但如果用户双击复选框,它仍会检查/取消选中。 我尝试过使用nodeMouseDoubleClick事件,但这并没有真正帮助,因为我无法取消事件… 是否有任何想法取消节点上的双击事件?…或其他什么? 谢谢

在文本框中捕获Ctrl + C.

尽管我多年来一直使用C#( Windows Forms ),但我有一个大脑失败的时刻,并且在我的生活中无法弄清楚如何捕获用户在文本框中键入Ctrl + C。 我的应用程序基本上是一个终端应用程序,我希望Ctrl + C将(byte)3发送到串行端口,而不是复制到剪贴板的快捷方式。 我在文本框中将快捷方式enabled属性设置为false。 然而,当用户按Ctrl + C时 ,按键事件不会触发。 如果我抓住keydown,当用户按下Ctrl键时 (即,在它们点击C键之前),事件将触发。 我很遗憾,这可能是一件非常简单的事情。

用户取消了ClickOnce更新,它再也不会要求更新

我有一个Windows窗体应用程序,它通过ClickOnce部署。 在启动应用程序期间,它会检查更新并提示用户输入相同内容。 如果用户选择不安装该会话的更新,则不再询问。 这是设计还是我错过任何设置? 如何在下次启动应用程序时让用户提示更新?

WinForm绑定单选按钮

我使用VS2010,然后将Member datagridview拖放到设计视图中。 之后,我将名称成员文本字段拖放到设计视图,然后尝试编辑和保存。 它运作正常。 然后我拖放性爱单选按钮来设计视图。 但绑定它不起作用。 我怎么能在这种情况下绑定? 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 Test7 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void memberBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.memberBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.dbDataSet); } private void Form1_Load(object sender, EventArgs e) […]

可以在后台线程中运行GC.Collect吗?

在这个SO答案之后 ,我正在做: ThreadPool.QueueUserWorkItem( delegate { GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); }); 我的目标是在关闭一个包含大量图像/ PictureBox控件的大型WinForms表单后进行垃圾收集运行,以确保我的内存中不再有图像。 (我确实相信我遵循Jon Skeet的指示 )。 我在后台线程中这样做是为了尝试让我的UI响应。 我的问题: 它是否为我在后台线程中进行垃圾收集带来了什么好处? 或者它实际上使我的应用程序更慢/挂起更长?