Как захватить выбранные значения из диалога? - PullRequest
0 голосов
/ 10 января 2011

Я создал форму Windows FontDialog.cs, где мои пользователи могут выбирать цвета для текста. Мне нужно захватить то, что пользователь выбрал в диалоговом окне:

alt text

Вот как я вызываю диалог:

DialogsTestingGrounds.FontDialog dialog = new FontDialog();
dialog.ShowDialog();

Как я могу захватить выбранные значения, я думаю, что мне нужно создать свойства для всего, что я хочу передать в конце формы FontDialog.cs, верно?

Ответы [ 3 ]

3 голосов
/ 10 января 2011

То, что вы хотели бы сделать, это выставить свойства на вашем FontDialog, которые делают значения доступными. Затем вы можете использовать dialog.PropertyName для ссылки на него по имени свойства.

2 голосов
/ 10 января 2011

Нет необходимости, вы можете использовать, например, dialog.Font, чтобы получить выбранный шрифт, dialog.Color для цвета и т. Д. ...

1 голос
/ 11 января 2011

Ответ Митчела сработает, но вы, возможно, захотите включить пару других элементов в одну и ту же строку.

  • Иметь публичную собственность (согласно ответу Митчела).
  • Иметь публичнуюконструктор в форме с типом свойства в качестве аргумента, так что вы можете передать значение, о котором идет речь (это позволит вам предварительно заполнить диалоговое окно старым выделением).
  • Окружите ваш вызов диалоговым окном с помощьюпроверьте для dialogresult, так что вы можете изменить значение только тогда, когда пользователь хочет.(обратите внимание, что процесс в WPF отличается от этого)
  • Феличе также прав в том, что вам на самом деле не нужно создавать диалог нового шрифта, если единственное, что вас волнует, это шрифт.В .Net http://msdn.microsoft.com/en-us/library/system.windows.forms.fontdialog%28v=vs.71%29.aspx

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

    public Font SelectedFont { get; set; }
    public FontDialog()
    {
       //set your defaults here
    }

    public FontDialog (Font font)
    {
       SelectedFont = font;
       //dont forget to set the passed in font to your ui values here
    }

    private void acceptButton_Click(object sender, EventArgs e)
    {
        SelectedFont = //How ever you create your font object;
    }

Затем вызвать вашу функцию(предполагается, что выше acceptButton - это формы AcceptButton)

DialogsTestingGrounds.FontDialog dialog = new FontDialog();
if(dialog.ShowDialog() == DialogResult.OK)
     //Do Something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...