防止用户在后台处理时单击表单上的任何内容的最佳方法是什么?
What is the best way to prevent user click anything on the form while processing on background?
我正在开发 Youtube Mp3 转换器。 Mp3 转换需要几秒钟,我希望用户无法单击表单上的任何控件。我已经使用 Control.Enabled = false
完成了所有控制,但我认为这种方式不专业并且不利于视觉效果。请问有什么好的方法吗?
正如评论所说,您可以使用模态形式:
yourModalForm.ShowDialog();
没有标题栏按钮或根本没有标题栏,转换完成后会自行关闭。
或者您可以按照自己的建议使用 Enabled
属性 但不是针对每个控件,您可以一次对整个表单执行此操作:
this.Enabled = false;
请记住,如果您处于正确的上下文中,this
就是您的表单。
我还建议您更改表单光标,例如:
this.Cursor = Cursors.WaitCursor;
当你的工作完成后,你所要做的就是:
this.Enabled = true;
this.Cursor = Cursors.Default;
我正在开发 Youtube Mp3 转换器。 Mp3 转换需要几秒钟,我希望用户无法单击表单上的任何控件。我已经使用 Control.Enabled = false
完成了所有控制,但我认为这种方式不专业并且不利于视觉效果。请问有什么好的方法吗?
正如评论所说,您可以使用模态形式:
yourModalForm.ShowDialog();
没有标题栏按钮或根本没有标题栏,转换完成后会自行关闭。
或者您可以按照自己的建议使用 Enabled
属性 但不是针对每个控件,您可以一次对整个表单执行此操作:
this.Enabled = false;
请记住,如果您处于正确的上下文中,this
就是您的表单。
我还建议您更改表单光标,例如:
this.Cursor = Cursors.WaitCursor;
当你的工作完成后,你所要做的就是:
this.Enabled = true;
this.Cursor = Cursors.Default;