2015-09-23 2 views
0

Я создал инструменты для печати с предварительным просмотром печати. Предварительный просмотр печати производится по форме. Я хочу, чтобы пользователь нажал кнопку печати, чтобы распечатать документ, пока форма предварительного просмотра не закрывается.Как вернуть значение с помощью DialogResult.OK, не закрывая форму

Как я могу вернуть DialogResult.OK в печатный инструмент, предотвращающий исчезновение формы?

+0

Я предложил способ реализовать ваш запрос, вы можете спросить меня здесь, если что-то неясно – Yael

+0

Можете ли вы научить меня этому пути? – newstartgirls

ответ

0

В C# нет такой функции, как i. Однако вместо этого вы можете создать собственное диалоговое окно.

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"); 
0

Вы не можете.

DialogResult используется с модальными окнами. Модальные окна в основном захватывают основной цикл сообщений пользовательского интерфейса, что делает их синхронными по отношению к вызывающему.

Если вам нужен предварительный просмотр печати, чтобы начать печать, сохраняя диалог модальным, просто дайте ему способ инициировать печать, вместо того, чтобы вызывающий абонент отреагировал на возвращаемый DialogResult. Вероятно, самый простой способ сделать это - просто передать делегату Action в диалог - при нажатии OK вы вызываете делегата.

Смежные вопросы