繁体   English   中英

设置顶级用户控件(Winforms)的任务栏图标

[英]Set taskbar icon of top level usercontrol (Winforms)

我有一个顶层(即,就像一个窗口一样) UserControl (.NET 4.0),用于模拟自定义表单。 我可以轻松地设置标题文本和任务栏文本,如下所示:

public override string Text
{
    get { return base.Text; }
    set
    {
        base.Text = value
        TitleText.Text = value;
    }
}

设置标题文本和任务栏文本:

到目前为止我所取得的成就


我遇到的问题是,我似乎无法设置此UserControl的任务栏图标,因为它没有可覆盖的Icon属性,因此无法像处理文本一样设置任务栏图标。 另请注意, UserControl显示的图标只是一个包含图像的PictureBox

因此,简而言之,我希望能够做到这一点:

我想实现的目标

但是我不能这样做,因为UserControl没有Icon属性:

 public override Icon Icon { get { return base.Icon; } set { base.Icon = value; TitleBarIcon.Image = value.ToBitmap(); } } 


如何更改任务栏图标?
提前致谢 ;)

我不确定我是否正确,但我认为您必须做到:

要么设置ParentForm的图标。

或按以下说明设置ApplicationIcon: http : //msdn.microsoft.com/zh-cn/library/339stzf7.aspx

编辑:

当您使用控件作为TopLevelControl时,您需要在控件创建期间发送WM_SETICON-就像表单一样!

取自Form.CreateHandle:

        Icon icon = this.Icon;
        if (icon != null && this.TaskbarOwner.Handle != IntPtr.Zero)
        {
            UnsafeNativeMethods.SendMessage(this.TaskbarOwner, 128, 1, icon.Handle);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM