jak ze stringa ustawić FontStyle ?

jak ze stringa ustawić FontStyle ?
JF
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:20
0

Pobieram informacje o ustawionym foncie:

string s_FName = textBox1.Font.Name;
string s_FSize = textBox1.Font.Size.ToString();
FontStyle F_S = textBox1.Font.Style;
string s_FStyle = F_S.ToString();

i teraz, chciałbym to załadować do fontu i wykonać:

textBox1.Font = new Font(s_FName, s_FSize, s_FStyle);

I tu mam problem z s_FStyle - C# żąda zmiennej typu FontStyle i nie przyjmuje stringa s_FStyle.
Pojęcia nie mam, jak to skonwertować - podpowiedzcie coś?

Pozdrawiam,
Jan

Q4
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 11 lat
  • Postów:103
0

FontStyle to typ wyliczeniowy (enum). W funkcji w trzecim parametrze musisz napisać tak: FontStyle. i wtedy zobaczysz podpowiedzi np. Bold, Italic.
Musisz też zastanowić się nad samym logicznym aspektem tego: typy string i FontStyle są zupełnie różne i niezgodne, więc to trochę tak jakbyś próbował obiekt człowiek skonwertować na obiekt żelazko (albo pralkę).

edytowany 1x, ostatnio: qwertty43
JF
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:20
0

Oto i rozwiązanie, które zastosowałem (ale szukam czegoś dynamicznego i w jednym wierszu):

switch (jaki_styl) //I love this kure****!
{
case "Regular":
fs = FontStyle.Regular;
break;

                case "Bold":
                    fs = FontStyle.Bold;
                    break;

                case "Bold, Italic":
                    fs = FontStyle.Bold|FontStyle.Italic;
                    break;

                case "Italic":
                    fs = FontStyle.Italic;
                    break;

                case "Underline":
                    fs = FontStyle.Underline;
                    break;

                case "Strikeout":
                    fs = FontStyle.Strikeout;
                    break;
            }
n0name_l
mapa<string, fontstyle>
JF
Chodzi o MappingType ? Muszę poczytać o gym. Dziękuję.
I1
  • Rejestracja:około 16 lat
  • Ostatnio:8 dni
0
JanF napisał(a):

Pojęcia nie mam, jak to skonwertować - podpowiedzcie coś?

Po co takie dziwne konwersje robisz?

Zrób tak:
string s_FName = textBox1.Font.Name;
float s_FSize = textBox1.Font.Size;
FontStyle F_S = textBox1.Font.Style;

textBox1.Font = new Font(s_FName, s_FSize, F_S);

I po problemie.
Nie rozumiem po co zmieniać typ na string? Jak coś jest typu float, to powinno być typu float. Jak jest typu FontStyle, to powinno pozostać z takim typem. A jak coś jest typu string, to powinno pozostać stringiem, a nie być konwertowane na int. Czasami konwersja jest potrzebna, ale w tym przypadku nie widzę takiej potrzeby.

JF
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:20
0
Igor1981 napisał(a):
JanF napisał(a):

Pojęcia nie mam, jak to skonwertować - podpowiedzcie coś?

Po co takie dziwne konwersje robisz?
Zrób tak:
string s_FName = textBox1.Font.Name;
float s_FSize = textBox1.Font.Size;
FontStyle F_S = textBox1.Font.Style;

textBox1.Font = new Font(s_FName, s_FSize, F_S);
I po problemie.

Problem w tym, że robię szyfrowany edytor tekstowy (bardzo ciekawy algorytm szyfrowania VMPC) i chcę przechowywać font edycji tekstu - muszę FontStyle zrzucić do stringa i ze stringa uaktywniać font.

I1
  • Rejestracja:około 16 lat
  • Ostatnio:8 dni
0
JanF napisał(a):

Problem w tym, że robię szyfrowany edytor tekstowy (bardzo ciekawy algorytm szyfrowania VMPC) i chcę przechowywać font edycji tekstu - muszę FontStyle zrzucić do stringa i ze stringa uaktywniać font.

W takim razie zrób to tak:
FontStyle F_S = textBox1.Font.Style;
string s_FStyle = F_S.ToString();
FontStyle F_S2 = (FontStyle)Enum.Parse(typeof(FontStyle), s_FStyle);

JF
Dzięki. Muszę poczytać o metodach konwersji.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:8 dni
  • Lokalizacja:Wrocław
0

@JanF, po co Ci to s_F w nazwach zmiennych?

JF
Ok. Ale, nie w tym przecież problem.
Q4
Dziwne nazywanie zmiennych może prowadzić do bardzo dużych problemów :P.
JF
Nie 'może', MUSI prowadzić do problemów! :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.