我有一个
Windows窗体应用程序,它使用自定义窗体在长时间操作期间显示进度条.此表单当前设置为在我的程序中显示在任务栏上以及其他窗口.但是,当我的应用程序的其他窗口显示相应的应用程序图标时,此自定义窗体仅显示默认图标:
我将设计器中的图标设置为我所有其他窗口使用的相同图标文件,但只有这种特殊形式有此问题.该图标也会在表单的标题中正确显示.使用form.Icon = Resources.Sample_Icon手动设置图标;在子窗体的构造函数或使用循环中似乎没有任何效果.
// Inside Form1.cs on a button click using (var form = new SampleForm()) { form.Show(); for (int i = 0; i < numberOfIterations; ++i) { // Do work here in a real program // This function just calls progressbar.PerformStep(): form.UpdateProgress(); } }
将Show()更改为ShowDialog()确实显示正确的图标,但DialogResult在这种情况下实际上没有意义.
我怀疑有一些事件或消息设置了永远不会被处理的Windows任务栏图标,但当我扔进一个form.Refresh()和一个Application.DoEvents()(只是为了看它是否有所不同),我仍然有默认图标.
我错过了什么?而且,为什么ShowDialog正常工作?
我正在使用C#4.0.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。