问题标签 [linklabel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
320 浏览

.net - 如何在 .NET 中使用 LinkLabels 的 ArrayList 进行 LinkClicked 事件

我正在制作一个表格,该表格将显示打开不同类型报告的链接。这个系统有不同类型的用户,所以用户应该只能看到他们可以访问的报告类型的链接。

目前,我进行此设置的方式是我有一个 LinkLabels 的 ArrayList,但我遇到的问题是如何为 ArrayList 中的每个 LinkLabel 设置一个 LinkClicked 事件,以便它会显示一个特定于每个报告的表单.

0 投票
2 回答
4034 浏览

c# - 参数异常 - 参数无效(WinForm 上的 LinkLabel)

我编写了一个 Win Forms 应用程序来测试 LinkLabel 类的工作方式。在我单击更改后的 LinkLabel 之前,它似乎很好。Form1.cs 代码如下:

堆栈跟踪如下:

在 System.Drawing.Region.GetHrgn(Graphics g) 在 System.Windows.Forms.Control.Invalidate(Region region, Boolean invalidateChildren) 在 System.Windows.Forms.LinkLabel.InvalidateLink(Link link) 在 System.Windows.Forms。 LinkLabel.OnGotFocus(EventArgs e) 在 System.Windows.Forms.Control.WmSetFocus(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.Label.WndProc(Message& m) 在System.Windows.Forms.LinkLabel.WndProc(Message& msg) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows。在 System.Windows.Forms.UnsafeNativeMethods.SetFocus(HandleRef hWnd) 在 System.Windows 的 Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)。System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control 的 System.Windows.Forms.LinkLabel.OnMouseDown(MouseEventArgs e) 的 Forms.Control.FocusInternal()。 WndProc(Message& m) 在 System.Windows.Forms.Label.WndProc(Message& m) 在 System.Windows.Forms.LinkLabel.WndProc(Message& msg) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&味精)在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager。FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at LinkLabelTest.Program.Main() 在 C:\Users\Tony\Documents\Visual Studio 2008\Projects\LinkLabelTest\LinkLabelTest\Program.cs:line 22C:\Users\Tony\Documents\Visual Studio 2008\Projects\LinkLabelTest\LinkLabelTest\Program.cs:line 22 中的 Main()C:\Users\Tony\Documents\Visual Studio 2008\Projects\LinkLabelTest\LinkLabelTest\Program.cs:line 22 中的 Main()

下面是设计器生成的代码:

请有人建议。是 LinkLabel 的 Paint 事件发生时没有窗口句柄的问题。

提前谢谢了

托尼

0 投票
2 回答
2249 浏览

wpf - WPF LinkLabel 实现策略

我正在尝试为 WPF 创建一个 LinkLabel 控件。本质上,我将从 TextBlock 创建 LinkLabel 并处理 MouseEnter、MouseLeave 和 MouseLeftButtonUp 事件。在后端,我有一个基类,它具有您希望通过 LinkLabel 看到的属性。对于 WPF 中的大多数其他可单击控件,有一个默认的 MouseEnter 动画,其中控件变为冰蓝色。当鼠标光标进入 TextBlock 时,我想复制此行为。我不确定我是否需要从 ButtonBase 或类似的东西派生。我有一个我能够将光标更改为一只手,并处理单击“LinkLabel”时的事件。如果访问这个看似默认的变色动画,那么我可能不得不求助于简单的前景色交换而没有平滑过渡。如果有人之前创建了自定义 WPF LinkLabel 或对此事有任何建议,您的意见将不胜感激。

0 投票
6 回答
17157 浏览

delphi - 如何使 TLinkLabel 在 Delphi 中工作?

我在表单上放了一个 TLinkLabel,用包含有效 HTML 链接的标题填充它,并得到一些漂亮的蓝色下划线文本。当我运行程序时,我希望它会调用 Firefox(我的默认浏览器)并自动打开链接。显然情况并非如此。

帮助文件说我必须在 OnLinkClick 事件处理程序中对此进行编码。但是,它没有说明如何做到这一点。它将传入一个名为“Link”的字符串值。我怎么说“调用默认浏览器并打开链接”?

0 投票
1 回答
2478 浏览

c# - 对 LinkLabel 控件使用键盘快捷键

我注意到在标准 .NET WinForms 表单中分配给链接标签控件的键盘快捷键不起作用。

我创建了一个 LinkLabel 控件实例并将 Text 属性指定为“Select &All”。对于大多数控件(标签、按钮、单选按钮等),这将导致Alt+A成为触发默认事件(单击)的指定键盘快捷键。LinkLabel 不会发生这种情况(尽管其他控件可以正常工作)

  • 我已验证键盘快捷键不是重复的。
  • 我检查了快捷方式是否设置焦点而不是触发 Clicked。重点保持不变。
  • 我已验证 UseMnemonic 属性设置为 true。

有任何想法吗?


解决方案

谢谢查理的正确答案。正是我需要的。我做了一些修改,因为这个代码片段不会按原样编译。LinkLabelLinkClickedEventArgs需要 aLinkLabel.Link作为构造参数而不是感谢 a LinkLabel

0 投票
4 回答
1814 浏览

c# - LinkLabel 需要比 TextRenderer.MeasureText 更多的空间说

如果我给 TextRenderer.MeasureText 一些要测量的文本和要使用的宽度,它将返回显示该文本所需的高度。

如果我将该文本、宽度和高度提供给 LinkLabel,它将以提供的宽度和高度显示文本,而不会被剪掉。

但是,如果我将一个链接放入 LinkLabel.Links 集合中,LinkLabel 将绘制文本,其中字符之间的间距似乎更大一些,有时这会导致文本的结尾被剪裁。有没有办法防止这种情况发生?我尝试在有链接时添加填充,但没有可靠的方法来确切知道需要多少空间。还有其他方法可以做到这一点吗?

0 投票
2 回答
2077 浏览

c# - 单击 Linklabel 时未处理的异常 C# Winform

当我单击应该打开表单的链接标签时,我遇到了一个奇怪的未处理异常。我试图将代码放在 try-catch 块中的 linklabel_click 事件处理程序中,但我仍然收到以下错误。

有关调用即时 (JIT) 调试而不是此对话框的详细信息,请参阅此消息的末尾。
************** 异常文本 ************** System.ComponentModel.Win32Exception:系统找不到在 System.Diagnostics.Process 中指定的文件。 System.Diagnostics.Process.Start() 处的 StartWithShellExecuteEx(ProcessStartInfo startInfo)
在 System.Diagnostics.Process.Start(ProcessStartInfo startInfo) 在 System.Diagnostics.Process.Start(String fileName) 在 InfoCapsule.FrmLink.llblHelp_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e) 在 System.Windows.Forms.LinkLabel.OnLinkClicked(LinkLabelLinkClickedEventArgs e) ) 在 System.Windows.Forms.LinkLabel.OnMouseUp(MouseEventArgs e) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control.WndProc(Message& m) 在System.Windows.Forms.Label.WndProc(Message& m) 在 System.Windows.Forms.LinkLabel.WndProc(Message& msg) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms。 Control.ControlNativeWindow.WndProc(消息&m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

linklabel_click 的代码如下。

FrmHelp 中的代码

你能帮我调试一下吗?

0 投票
2 回答
971 浏览

c# - 获取在运行时创建的链接标签的文本

有人可以向我解释如何获取我在运行时创建的链接标签的 Text 属性吗?

我试过了:

字符串 str = e.Link.LinkData;

...但这只是显示一个空的消息框。

非常感谢:)

0 投票
1 回答
325 浏览

c# - 有没有办法覆盖 LinkLabel 的虚线选择/突出显示矩形?

有一个选择矩形突出显示当前选定的元素当然有一些优点,该元素也具有焦点。然而,带有填充的元素可能会导致矩形被绘制在完全不需要的位置,因此会阻碍并且没有帮助。所以事不宜迟,我的问题是:有没有办法隐藏这个矩形或调整它的位置?

  • 切换到所有者绘制整个元素应该只是最后的手段
  • 将“TabStop”属性设置为 false 不起作用
0 投票
1 回答
92 浏览

c# - 是否有一种内置方法可以替换 LinkLabel 中的链接文本,并让其他链接自动调整以使它们保持在相同的文本上?

换句话说,如果我有:

是否有任何方法可以调用以将“Some”链接的文本替换为其他内容,同时保持“go”链接相同。

我只想知道是否有内置方法。这并不难编码,我只是不想重新发明轮子。

当然,我查阅过 LinkLabel 文档,但有时方法会隐藏在意想不到的地方。