首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整ErrorProvider的系统图标大小

调整ErrorProvider的系统图标大小
EN

Stack Overflow用户
提问于 2013-06-01 11:15:45
回答 3查看 2.5K关注 0票数 1

我正在尝试调整SystemIcon的大小以便在ErrorProvider中使用。

代码语言:javascript
复制
  Dim WarnProvider As New ErrorProvider
  WarnProvider.BlinkStyle = ErrorBlinkStyle.NeverBlink
  WarnProvider.Icon = SystemIcons.Information.Clone()
  WarnProvider.Icon.Size = New Size(16,16)

但是SystemIcons将size设置为只读属性。

在过去的一个小时里,我一直在摆弄它,还没有找到任何好的方法来让它工作。

有人能帮帮忙吗?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2015-12-11 01:52:33

我也在寻找这样做的方法,偶然发现了这篇文章。以下是我最终解决这个问题所做的事情。

我创建了一个全局静态方法来调整图标的大小。

代码语言:javascript
复制
public static class Global
{
    public static Icon ResizeIcon( Icon icon, Size size )
    {
        Bitmap bitmap = new Bitmap(size.Width,size.Height);
        using( Graphics g = Graphics.FromImage(bitmap) )
        {
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g.DrawImage(icon.ToBitmap(), new Rectangle(Point.Empty,size));
        }
        return Icon.FromHandle(bitmap.GetHicon());
    }
}

然后,在调用InitializeComponent()之后,我在窗体的构造函数中应用了该图标。

代码语言:javascript
复制
public SpecificationsDialog( int pid )
{
    InitializeComponent();
    warningProvider1.Icon = Global.ResizeIcon(SystemIcons.Warning,SystemInformation.SmallIconSize);
}
票数 5
EN

Stack Overflow用户

发布于 2013-11-04 04:10:19

我正在寻找同样的东西,并在其他地方找到了答案,所以我将在这里发布http://www.codeproject.com/Questions/242780/error-provider-problem

代码语言:javascript
复制
WarnProvider.Icon = new Icon (SystemIcons.Warning, 16, 16);

代码语言:javascript
复制
WarnProvider.Icon = new Icon (WarnProvider.Icon, 16, 16);
票数 0
EN

Stack Overflow用户

发布于 2020-01-19 18:28:34

我稍微更改了Drew的解决方案,使其成为errorprovider的扩展方法:

代码语言:javascript
复制
public static ErrorProvider SetIcon(this ErrorProvider errorProvider, Icon icon, Size size)
    {
        Bitmap bitmap = new Bitmap(size.Width, size.Height);
        using (Graphics g = Graphics.FromImage(bitmap))
        {
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g.DrawImage(icon.ToBitmap(), new Rectangle(Point.Empty, size));
        }
        errorProvider.Icon = Icon.FromHandle(bitmap.GetHicon());
        return errorProvider;
    }

然后它可以像这样使用:

代码语言:javascript
复制
ErrorProvider ep = new ErrorProvider();
ep.SetIcon(SystemIcons.Asterisk, new Size(16,16));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16868716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档