gpt4 book ai didi

C# WinForm : Remove or Customize the 'Focus Rectangle' for Buttons 格式

转载 作者:可可西里 更新时间:2023-11-01 08:17:55 25 4
gpt4 key购买 nike

有没有办法禁用或更好地为常规按钮控件绘制您自己的焦点矩形! (那条虚线看起来很像 Windows 95ish)

我注意到控件属性 (FOR BUTTONS) 没有 ownerdrawfixed 设置(我不知道这是否是用于解决方案的路径,尽管我已经看到它用于自定义其他控件).

最佳答案

要做到这一点比听起来要棘手。毫无疑问,自定义按钮绘制不可覆盖的原因之一。这按预期工作:

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

class MyButton : Button {
private VisualStyleRenderer renderer;
protected override void OnPaint(PaintEventArgs e) {
base.OnPaint(e);
if (this.Focused && Application.RenderWithVisualStyles && this.FlatStyle == FlatStyle.Standard) {
if (renderer == null) {
VisualStyleElement elem = VisualStyleElement.Button.PushButton.Normal;
renderer = new VisualStyleRenderer(elem.ClassName, elem.Part, (int)PushButtonState.Normal);
}
Rectangle rc = renderer.GetBackgroundContentRectangle(e.Graphics, new Rectangle(0, 0, this.Width, this.Height));
rc.Height--;
rc.Width--;
using (Pen p = new Pen(Brushes.DarkGray)) {
e.Graphics.DrawRectangle(p, rc);
}
}
}
}

关于C# WinForm : Remove or Customize the 'Focus Rectangle' for Buttons 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1700534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com