我创建了一个带有打印预览的打印工具。打印预览是按表单进行的。我想让用户在预览表单未关闭时单击打印按钮来打印文档。
如何将DialogResult.OK返回到打印工具以防止表单消失?
发布于 2015-09-23 22:29:12
你不能这么做。
DialogResult与模式窗口一起使用。模式窗口基本上劫持了底层的UI消息循环,这使得它们与调用者保持同步。
如果您需要在保持对话框模式的同时使用打印预览来启动打印,只需给它一种启动打印的方法,而不是让调用者对返回的DialogResult做出反应。最简单的方法可能是简单地将一个Action委托传递给对话框-当按下OK时,您调用该委托。
发布于 2015-09-23 22:28:53
在C#中没有像我现在这样的功能。但是,您可以创建自定义对话框来执行此操作。
public static class MyDialog
{
public static int ShowDialog(string text, string caption)
{
Form prompt = new Form();
prompt.Width = 500;
prompt.Height = 100;
prompt.Text = caption;
Label textLabel = new Label() { Left = 50, Top=20, Text=text };
NumericUpDown inputBox = new NumericUpDown () { Left = 50, Top=50, Width=400 };
Button confirmation = new Button() { Text = "Ok", Left=350, Width=100, Top=70 };
confirmation.Click += (sender, e) => { //YOUR FUNCTIONALITY };
prompt.Controls.Add(confirmation);
prompt.Controls.Add(textLabel);
prompt.Controls.Add(inputBox);
prompt.ShowDialog();
return (int)inputBox.Value;
}
}然后使用以下命令调用它:
int MyDialogValue = MyDialog.ShowDialog("Test", "123");https://stackoverflow.com/questions/32742203
复制相似问题