Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Работа со шрифтами Добавлено: 16.09.04 06:27  

Автор вопроса:  Terminator | Web-сайт: www.cheats049.narod.ru | ICQ: 170087310 
Хочу при выходе из программы сохранять настройки шрифта RichTextBox'а в текстовом файле, чтобы при загрузке импортировать его вновь. Сохранить шрифт получается, с этим проблем нет (с помощью font.ToString). А как при загрузке из файла преобразовать текст String в System.Drwing.Font? Как раз простой обратной операции и нет.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #1 Добавлено: 16.09.04 11:57
а может можна сериалезировать шрифт, а при загрузке программы
десереализировать...?



Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 16.09.04 12:27
f = New Font ("Times New Roman", 12)

Ответить

Номер ответа: 3
Автор ответа:
 Terminator



ICQ: 170087310 

Вопросов: 12
Ответов: 6
 Web-сайт: www.cheats049.narod.ru
 Профиль | | #3
Добавлено: 20.09.04 02:01
Все это понятно. Только проблема в другом: когда я сохраняю в текстовом файле f.ToString, в этом файле записывается что-то вроде
[Font: Name=Arial, Size=12, Units=3, GdiCharSet=204, GdiVerticalFont=False]

Как все это импортировать обратно в переменную, чтобы имя шрифта был Arial, размер - 12 и т.д.?
Вообще, если бы у Билла Гейтса были мозги, он бы сделал свойства f.Name, f.Size и т.д не только read-only. Тогда было бы намного проще.

Ответить

Номер ответа: 4
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #4 Добавлено: 20.09.04 12:23
на самом деле дядя Билли тут совсем непричем...
ToString() - используется для строкового представления объекта и совсем не
служит для формирования данных для десереализации...но даже из того что
делает метод ToString() для фонта можна вполне вытащтить всю информацию для
создания объекта шрифта...Достаточно воспользоваться регулярными
выражениями..
типа этого
Const str$ = "[Font: Name=Arial, Size=12, Units=3, GdiCharSet=204,
GdiVerticalFont=False]"

Dim reg$ = "Font: Name=(?<name>[a-zA-Z]+), Size=(?<size>\d+), "

Dim regExp As New System.Text.RegularExpressions.Regex(reg)

Dim m As System.Text.RegularExpressions.Match = regExp.Match(str)

MsgBox(String.Format("Font={0},Size={1}", New String()
{m.Groups("name").Value, m.Groups("size").Value}))



Ответить

Номер ответа: 5
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #5 Добавлено: 21.09.04 17:01
Шрифты прекрасно сериализируются/десериализируются - проверено на
личном опыте.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам