LSB71 Ответов: 3

В C# получить стиль, название, размер и стоимость fontdialog


Hello,
My question is in the title ...
I can get the name, the size, but not the Style..What do you miss me?
Thank you


Что я уже пробовал:

<pre lang="c#"> 
                   FontDialog Dlg = new FontDialog
                {
                    ShowColor = false,
                    ShowApply = false,
                    ShowEffects = false,
                    ShowHelp = false,
                   //   AllowVerticalFonts = false,
                    //  AllowScriptChange = false,
                   //   FixedPitchOnly = true,
                    MinSize = 9,
                    MaxSize = 16
                };


 if (Dlg.ShowDialog() == DialogResult.OK)
                {                 
                    string fontName = Dlg.Font.Name;
                     fontStyle = Dlg.Font.Style; // This code does not work ....
                    float fontSize = Dlg.Font.Size;

                    TxtPolice.Text = fontName;
                    TxtStyle.Text = fontStyle; // This code does not work ....
                    TxtFont.Text = "" + fontSize;
                }

Richard Deeming

Что "не действовать" значит? Предоставьте полную информацию о любых ошибках, которые вы получаете.

3 Ответов

Рейтинг:
28

phil.o

fontStyle = Dlg.Font.Style;
Вы используете здесь fontStyle переменная, которую вы, кажется, не объявили. Попробуй
System.Drawing.FontStyle fontStyle = Dlg.Font.Style;
вместо. Вы также можете импортировать System.Drawing пространство имен, чтобы вы могли ссылаться на FontStyle перечисление в более коротком виде.


BillWoodruff

актуально, но не затрагивает главного вопроса.

Рейтинг:
14

LSB71

Hello,
Thank you, but I have solved my story ....
Here is the complete code:


FontDialog Dlg = new FontDialog
         {
             ShowColor = false,
             ShowApply = false,
             ShowEffects = false,
             ShowHelp = false,
            //   AllowVerticalFonts = false,
             //  AllowScriptChange = false,
            //   FixedPitchOnly = true,
             MinSize = 9,
             MaxSize = 16
         };


         if (Dlg.ShowDialog() == DialogResult.OK)
         {
             string fontName = Dlg.Font.Name;
             Object fontStyle = Dlg.Font.Style;
             float fontSize = Dlg.Font.Size;

             TxtPolice.Text = fontName;
             TxtStyle.Text = fontStyle.ToString();
             TxtFont.Text = "" + fontSize;
         }


phil.o

Очень плохая привычка использовать объект там, где вы можете использовать правильный тип. Пожалуйста, смотрите мой ответ.

BillWoodruff

Каждое из этих шести полей, объявленных в области действия предложения if, не будет существовать вне предложения if и никогда не может быть использовано.

Рейтинг:
1

LSB71

FontDialog Dlg = new FontDialog
                {
                    ShowColor = false,
                    ShowApply = false,
                    ShowEffects = false,
                    ShowHelp = false,
                   //   AllowVerticalFonts = false,
                    //  AllowScriptChange = false,
                   //   FixedPitchOnly = true,
                    MinSize = 9,
                    MaxSize = 16
                };


                if (Dlg.ShowDialog() == DialogResult.OK)
                {                 
                    string fontName = Dlg.Font.Name;
                    FontStyle fontStyle = Dlg.Font.Style;
                    float fontSize = Dlg.Font.Size;

                    TxtPolice.Text = fontName;
                    TxtStyle.Text = fontStyle.ToString();
                    TxtFont.Text = "" + fontSize;
                }


BillWoodruff

Каждое из этих шести полей, объявленных в области действия предложения if, не будет существовать вне предложения if и никогда не может быть использовано.

LSB71

Привет,
Спасибо, но как же мне тогда их объявить?