我有一个顶级(即像窗口一样)UserControl
(.NET 4.0),我用它来模拟自定义表单。我可以像这样轻松设置标题文本和任务栏文本:
public override string Text
{
get { return base.Text; }
set
{
base.Text = value
TitleText.Text = value;
}
}
设置标题文本和任务栏文本:
请注意,图片底部的栏是我的实际任务栏;我已经安装了备用shell
<小时/> 我遇到的问题是我似乎无法设置此UserControl
的任务栏图标,因为它没有可覆盖的Icon
属性,因此我无法将任务栏图标设置为我会用文字。另请注意,UserControl
中显示的图标只是包含图片的PictureBox
。
但我不能这样做,因为Icon
没有UserControl
属性:
public override Icon Icon
{
get { return base.Icon; }
set
{
base.Icon = value;
TitleBarIcon.Image = value.ToBitmap();
}
}
<小时/> 如何更改任务栏图标?
答案 0 :(得分:1)
我不确定我是否帮助你,但我认为你有可能:
设置ParentForm的Icon。
或按照此处所述设置ApplicationIcon:http://msdn.microsoft.com/en-us/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);
}