[英]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.