Excel催化剂开源第44波-窗体在Show模式下受Excel操作影响变为最小化解决方式

2021-08-19 15:52:09 浏览数 (1)

在Excel催化剂的许多功能中,都会开发窗体用于给用户更友好的交互使用,但有一个问题,困扰许久,在窗体上运行某些代码后,中途弹出下MessageBox对话框给用户做一些简单的提示或交互时,发现程序运行结束后,窗体本来是显示在前端最顶层的,却变为最小化在任务栏中。

这个问题带来非常不好的用户体验,弄到最后,都不太敢向用户发出MessageBox对话框之类的提示,或者干脆使用ShowDialog的模式显示,总之非常不爽。

最近,尝试着一个简单的处理,程序结束后,通过先Hide隐藏窗体,再重新Show显示窗体,没想到就这么简单的处理,竟然成功达到预期效果,窗体就算中途有MessageBox,有选择Excel单元格区域等操作,窗体仍然显示最前方。

附上图形类型选择的一小段源代码。

代码语言:javascript复制
        private void SelectMatchShapes(List<string> selectShpNames)
        {

            if (selectShpNames.Count > 0)
            {
                this.CurrentSht.Shapes.Range[selectShpNames.ToArray()].Select();
            }
            else
            {
                this.CurrentSht.Cells[1].Select();//没有图形选中就选择单元格。
            }

            this.Hide();
            this.Show();
        }

结语

有时,一个简单的处理,就能带上一个非常大的体验改善,此篇应该是开源分享最简单的,但若有人在我之前发现此答案,给予回复,对笔者来说,这些真是旧旱逢甘露一般地滋润。

会者不难,难者不会,放到这上面来说有点小题大作了,但现实就是许多这样,看似简单,如果没人指引,一直摸黑到放弃为止,希望你不是VSTO摸黑后放弃的那一位。

0 人点赞