winforms相关内容

在不窃取焦点的情况下显示表单?

我正在使用一个表单来显示通知(它出现在屏幕的右下角),但是当我显示这个表单时,它从主表单中窃取了焦点.有没有办法在不窃取焦点的情况下显示这种“通知"表单? 解决方案 嗯,不是简单地覆盖 Form.ShowWithoutActivation 就足够了吗? protected override bool ShowWithoutActivation{得到 { 返回真;}} 如果您也不希望用户 ..
发布时间:2021-12-02 14:08:06 C#/.NET

如何检测当前按下的键?

在Windows Forms中,您可以随时知道光标的当前位置感谢 光标 类. 同样的东西似乎不适用于键盘.例如,是否可以知道 Shift 键是否被按下? 是否绝对有必要追踪每个键盘通知(KeyDown 和 KeyUp 事件)? 解决方案 if ((Control.ModifierKeys & Keys.Shift) != 0) 如果 Ctrl+Shift 按下,这也将成立.如 ..
发布时间:2021-12-02 14:01:09 C#/.NET

检查 .NET 中的目录和文件写入权限

在我的 .NET 2.0 应用程序中,我需要检查是否存在足够的权限来创建文件并将其写入目录.为此,我有以下函数尝试创建一个文件并向其中写入一个字节,然后删除自身以测试权限确实存在. 我认为最好的检查方法是实际尝试并执行它,捕获发生的任何异常.不过,我对一般的异常捕获并不是特别满意,那么是否有更好或更可接受的方法来做到这一点? private const string TEMP_FILE = ..
发布时间:2021-12-02 13:58:08 C#/.NET

如何使窗口始终保持在 .Net 的顶部?

我有一个 C# winforms 应用程序,它在另一个程序中运行一个宏.另一个程序会不断弹出窗口,通常会使事情看起来很疯狂,因为没有更好的词.我想实现一个取消按钮来阻止进程运行,但我似乎无法让窗口保持在顶部.我如何在 C# 中执行此操作? 编辑:我试过 TopMost = true; ,但另一个程序不断在顶部弹出它自己的窗口.有没有办法每 n 毫秒将我的窗口发送到顶部? 编辑:我解决这 ..
发布时间:2021-12-02 13:55:25 C#/.NET

为 C# 应用程序制作安装程序,并将 .NET Framework 安装程序包含在安装程序中

我已经完成了我的 C# 应用程序,但我有一个小问题: 当我尝试在另一台 PC 上运行我的应用程序时,我总是需要安装 .NET Framework 4.0. 有什么办法可以让它在不从互联网上安装框架的情况下工作吗? 我之前尝试过 InnoSetup 用于 VB6 应用程序,但我不确定它是否适用于 .NET4.0! 有什么想法吗? 解决方案 使用 Visual Stud ..
发布时间:2021-12-02 13:53:42 C#/.NET

将控制台输出重定向到单独程序中的文本框

我正在开发一个 Windows 窗体应用程序,它需要我调用一个单独的程序来执行任务.该程序是一个控制台应用程序,我需要将控制台的标准输出重定向到我程序中的 TextBox. 我从我的应用程序执行程序没有问题,但我不知道如何将输出重定向到我的应用程序.我需要在程序运行时使用事件捕获输出. 在我的应用程序停止并且文本以随机间隔不断变化之前,控制台程序不会停止运行.我正在尝试做的只是从控制台 ..
发布时间:2021-12-02 13:52:17 C#/.NET

关于在 .NET 中干净地终止线程的问题

我从我读过的关于该主题的大量文章中了解到 Thread.Abort() 是邪恶的,所以我目前正在删除所有中止的内容,以便以更简洁的方式替换它;在比较了 stackoverflow 上人们的用户策略之后,然后阅读了 "如何:创建和终止线程(C# 编程指南)" 来自 MSDN,两者都说明了一种非常相同的方法——即使用 volatile bool 方法检查策略,很好,但我还有一些问题...... ..
发布时间:2021-12-02 13:50:36 C#/.NET

如何在 Frames/IFrames 中获取 HtmlElement 值?

我正在使用 Winforms WebBrowser 控件从下面链接的站点收集视频剪辑的链接. LINK 但是,当我逐个元素滚动时,我找不到 标签. void webBrowser_DocumentCompleted_2(object sender, WebBrowserDocumentCompletedEventArgs e){尝试{HtmlElementCollection pTa ..
发布时间:2021-12-02 13:49:00 C#/.NET

如何编写自动缩放到系统字体和 dpi 设置的 WinForms 代码?

简介: 有很多评论说“WinForms 不能很好地自动缩放到 DPI/字体设置;切换到 WPF."但是,我认为这是基于 .NET 1.1;看起来他们实际上在 .NET 2.0 中实现自动缩放方面做得很好.至少基于我们迄今为止的研究和测试.但是,如果你们中的一些人知道得更好,我们很乐意听取您的意见.(请不要争论我们应该切换到 WPF ......现在这不是一个选项.) 问题: WinFo ..
发布时间:2021-12-02 13:47:42 C#/.NET

如何使 WinForms 应用程序全屏显示

我有一个 WinForms 应用程序,我正在尝试全屏显示(有点像 VS 在全屏模式下所做的). 目前我将 FormBorderStyle 设置为 None 并将 WindowState 设置为 Maximized 这给了我更多的空间,但如果它是可见的,它不会覆盖任务栏. 我还需要做什么才能使用该空间? 对于奖励积分,我可以做些什么让我的 MenuStrip 自动隐藏以放弃该空间? ..
发布时间:2021-12-02 13:42:06 C#/.NET

用更好的浏览器(如 Chrome)替换 .NET WebBrowser 控件?

是否有任何相对简单的方法可以将现代浏览器插入到 .NET 应用程序中? 据我所知,WebBrowser 控件是 IE 的包装器,这不会有问题,只是看起来它是一个非常旧的版本IE 的所有内容,包括 CSS 错误、潜在的安全风险(如果渲染引擎没有打补丁,我真的能指望修复无数缓冲区溢出问题吗?),和其他问题. 我正在使用 Visual Studio C#(快速版 - 在这里有什么不同吗?) ..
发布时间:2021-12-02 13:35:29 C#/.NET

DPI 意识 - 一个版本不知道,另一个版本是系统感知

所以我们遇到了这个非常奇怪的问题.我们的应用程序是一个 C#/WinForms 应用程序.在我们的 6.0 版本中,我们的应用程序不支持 DPI.在我们的 6.1 版本中,它突然变得可以感知 DPI. 在 6.0 版本中,如果您以高 DPI 运行它,它会使用 Windows 位图缩放,这很好,因为这不会影响屏幕布局.在 6.1 版本中,由于某种原因,它具有 DPI 感知能力,因此用户界面被破坏了 ..
发布时间:2021-12-02 13:35:21 C#/.NET

WinForms 中的水印文本框

谁能给我指出一个基本的 Windows 窗体文本框的一个很好的实现,它最初会显示当光标进入时消失的水印文本?我想我可以通过对 Enter 和 Leave 事件的一些创造性使用来创建自己的,但我确信在某处有一个完美可用的实现.我看到了 WPF 实现,如有必要,我可以嵌套它,但本机 WinForms TextBox 派生类会更好. 到目前为止我有这个;还没有尝试过,但有没有人看到任何明显的问题? ..
发布时间:2021-12-02 13:17:34 C#/.NET

你如何在 C# 中模拟鼠标点击?

如何在 C# winforms 应用程序中模拟鼠标点击? 解决方案 我结合了几个来源来生成下面的代码,我目前正在使用这些代码.我还删除了 Windows.Forms 引用,因此我可以在控制台和 WPF 应用程序中使用它,而无需额外引用. 使用系统;使用 System.Runtime.InteropServices;公共类鼠标操作{[旗帜]公共枚举 MouseEventFlags{左下 = ..
发布时间:2021-12-01 10:02:17 C#/.NET

如何在 WebBrowser 控件中注入 Javascript?

我已经试过了: string newScript = textBox1.Text;HtmlElement head = browserCtrl.Document.GetElementsByTagName("head")[0];HtmlElement scriptEl = browserCtrl.Document.CreateElement("script");lblStatus.Text = s ..
发布时间:2021-12-01 09:58:43 C#/.NET

从 Windows 窗体控件中按名称查找控件

我有一个文本框名称列表,我想按名称查找控件.怎么可能? 解决方案 使用 Control.ControlCollection.Find. TextBox tbx = this.Controls.Find("textBox1", true).FirstOrDefault() as TextBox;tbx.Text = "找到了!"; 编辑提问者: Control[] tbxs = thi ..
发布时间:2021-12-01 09:56:36 C#/.NET

WinForm 应用程序 UI 在长时间运行期间挂起

我有一个 windows 窗体应用程序我需要使用 for 循环进行大量远程调用,大约 2000 - 3000 次调用, 并且在执行 for 循环时,我失去了对表单和表单控件的控制,因为它变成了一个大进程,并且有一段时间它显示“无响应",但如果我等了很长时间它又回来了,我想我需要为此使用一些线程模型,有什么想法,我该如何继续解决问题? 解决方案 您需要在后台线程上执行长时间运行的操作. ..
发布时间:2021-12-01 09:49:17 C#/.NET

在 Windows 窗体应用程序中实现键盘快捷键的最佳方法?

我正在寻找实现常见 Windows 键盘快捷键的最佳方法(例如 Ctrl+F、Ctrl+N) 在我的 Windows Forms 应用程序中使用 C#. 该应用程序有一个主窗体,它承载许多子窗体(一次一个).当用户点击 Ctrl+F 时,我想显示自定义搜索表单.搜索表单将取决于应用程序中当前打开的子表单. 我想在 ChildForm_KeyDown 事件中使用类似的东西: if ( ..
发布时间:2021-12-01 09:43:07 C#/.NET

为什么在 VB.Net 中每个表单都有一个默认实例,而在 C# 中没有?

我只是想知道有 (Name) 属性,它表示 Form 类的名称.此属性在命名空间中用于唯一标识 Form 是其实例的类,并且在 Visual Basic 的情况下,用于访问表单的默认实例. 既然这个默认实例来自哪里,为什么 C# 不能有一个等效的方法. 例如,要在 C# 中显示表单,我们会执行以下操作: //唯一方法Form1 frm = new Form1();frm.Show() ..
发布时间:2021-12-01 09:38:58 C#/.NET