Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение параметров шрифта и их применение 
V
    Опции темы
Doff
Дата 13.12.2008, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Здравствуйте. Столкнулся с проблемой: имеется Textbox. C помощью диалога выбора шрифта выбирается шрифт. Ну тут все просто
Код

If FontDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then  TextBox1.Font = FontDialog.Font

А еще надо сохранить и загрузить параметры шрифта. Код
Код

SaveSetting("Program", "Main", "Font", TextBox1.Font)

не работает, получается ошибка Value of type 'System.Drawing.Font' cannot be converted to 'String'. Как можно привести параметры шрифта к строковому типу?
Далее. Обнаружил, что вручную проблематично установить шрифт. Можно воспользоваться вот таким способом, но это мне не нужно, а нужно что-то вроде
Код

TextBox1.Font = GetSetting("Program", "Main", "Font", TextBox1.Font)

однако опять-таки все упирается в типы данных...
Помогите советом, пожалуйста.
PM   Вверх
diadiavova
Дата 13.12.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Такие параметры как шрифт легко сохраняются в настройках приложения, для этого даже код писать не надо. Просто в нужном текстбоксе открой окно свойств найди там пункт Application Setttings, Разверни его там увидишь пункт Property Bindings. Запусти диалог связывания свойств, найди там шрифт, тут же (или в свойствах проекта) можно создать соответствующую настройку, и увязать её со свойством Font текстбокса, её значение будет сохраняться автоматически.

user posted image

user posted image

user posted image

 

Это сообщение отредактировал(а) diadiavova - 13.12.2008, 15:55


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Doff
Дата 13.12.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



diadiavova,  как говорится - век живи, век учись! Спасибо!
PM   Вверх
transparent
Дата 16.5.2011, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



diadiavova, слушай не могу поймать где это все находится??
И что прям можно вот так взять и поставить чтобы например сохранялсь расположение окна (формы) относительно формы, и при следующем запуске окно будет там же???????
PM MAIL   Вверх
diadiavova
Дата 16.5.2011, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(transparent @  16.5.2011,  17:22 Найти цитируемый пост)
сохранялсь расположение окна (формы) относительно формы

В каком смысле относительно формы? Сохранять в настройках приложения можно значения свойств. Для этого для каждого сохраняемого значения создается своя настройка и к ней уже можно привязать значение нужного свойства окна. Находится это в свойствах окна. Выделяешь форму, открываешь ее свойства и находишь там Application Settings. Там есть инструменты. Еще к настройкам приложения можно получить доступ через свойства проекта. Там есть вкладка с настройками, на ней ты найдешь настройки всего проекта, к ним так же можно получить программный доступ.

http://msdn.microsoft.com/ru-ru/library/wabtadw6.aspx

А вообще смотри тут

http://social.msdn.microsoft.com/Search/ru...beta=0&ac=8


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 16.5.2011, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



diadiavova, опечатался.. Относительно экрана (рабочего стола).
Да, блин..Чтобы например сделал размер у формы, и при следующей загрузке она была таких же размеров...Вот что я имею ввиду

Добавлено через 8 минут и 14 секунд
обязательно завтра почитаю, спасибsmile

Скажи, и не обидно тебе что все так легко делается? Мне вот стало сейчас обидно ,так как все эти параметры я постоянно куда нить сохранял, в файл в реестр, а оказывается и кодить не нужно было, и легко и плохо, потому  как нужно знать основу, а уже потом можно и для быстроты что нибудь сохранить...Основы я имею ввиду - умение не галки на против свойств ставить(для соъранения настроек) а все самому писать
PM MAIL   Вверх
transparent
Дата 17.5.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



и ПРАВДА получается...но заметил некоторые баги..
Например я сделал сохранение расположение окна (Location), все пучком..И добавил Windowstate..Тоже вроде пучком, но если я пытаюсь развернуть форму (после того как все сохранения заработали) - то форма не разворачивается, а возвращается в обычное состояние....
То есть не катит одновременное сохранение нескольких настроек? а сколько придвидится проблем если еще кучу насохранятьsmile


И еще если не ставить сохранение Виндостате - то (если стоит сохранение локатион) - то если развернуть форму и закрыть - то при следующей загрузке - форма будет не там от куда мы ее разворачивали - а в левом углу!!А это баг я считаю, потому как сам с таким боролся, когда сохранял все эти вещи в отдельный файл..Там мне приходилось следить за тем какое окно было до тех пор пока его не закрыли и когда его не видоизменили, вроде не сложно, но там не все так просто, причем с Бегин и Ендресайз ничего не получилось, а получилось только с просто ресайз и Me.LocationChanged...

И вот еще один - если мы сохранили положение окна с помолчальными координатами (0,0) - то при загруке видно как форма мечется из угла в те координаты какие она (форма) запомнила для себя, ужасно не красиво, тоже баг!


PM MAIL   Вверх
diadiavova
Дата 17.5.2011, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(transparent @  17.5.2011,  17:48 Найти цитируемый пост)
То есть не катит одновременное сохранение нескольких настроек? а сколько придвидится проблем если еще кучу насохранять

Я не вполне понял что ты имеешь в виду. Там, емнип, имеет значение порядок сохранения настроек(вроде бы), то есть, если сначала разворачивается окно, а потом для него устанавливается положение, то вот и причина, почему оно свернулось. Надо делать наоборот. В сохранении параметров нет никакой магии: просто когда ты вновь запускаешь форму, ее свойствам присваиваются соответствующие значения вот и все. Стало быть особенности поведения формы надо учитывать, когда выполняешь эти действия. Тут надо либо порядок присвоения свойств поменять, либо делать это программно руками и в этом случае перед установлением положения проверять не развернуто ли окно.
Цитата(transparent @  17.5.2011,  17:48 Найти цитируемый пост)
И еще если не ставить сохранение Виндостате - то (если стоит сохранение локатион) - то если развернуть форму и закрыть - то при следующей загрузке - форма будет не там от куда мы ее разворачивали - а в левом углу!!

Ну это естественно, учитывая, что в развернутом состоянии ее положение действительно именно такое. С этим можно бороться, если к примеру создать свою форму, в которой будет свойство, запоминающее расположение формы пред последним разворотом и сохранять именно его (кстати, не исключено, что такое свойство есть, надо поискать).
Цитата(transparent @  17.5.2011,  17:48 Найти цитируемый пост)
И вот еще один - если мы сохранили положение окна с помолчальными координатами (0,0) - то при загруке видно как форма мечется из угла в те координаты какие она (форма) запомнила для себя, ужасно не красиво, тоже баг!

Попробуй сохранить StartPosition.



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 17.5.2011, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



ну да, ну да..Наверно все можно довести до ума, но я бросил это дело через 30 минут энтих опций...Как вариант для быстроты разработки приложения это таки гуд(если совсем торопишьсяsmile)..Согласен?   Спс
PM MAIL   Вверх
diadiavova
Дата 17.5.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Ну и не забывай о том, что к параметрам приложения можно получить доступ из кода, это лучше, чем мудрить с собственными файлами.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 17.5.2011, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



О чем ты?
О том что можно получить размер формы? При чем здесь это? Или ты о том что можно получить доступ к тому что пытаешься сохранить(в этих настройках - биндингс))?
PM MAIL   Вверх
diadiavova
Дата 17.5.2011, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(transparent @  17.5.2011,  21:03 Найти цитируемый пост)
О чем ты?

О том, что параметры приложения существуют не только для привязки к элементам пользовательского интерфейса. Ты с таким же успехом можешь создать параметр в свойствах проекта и использовать его по своему усмотрению из кода. Кроме того, в твоем случае проблемы возникли из-за того, что ты пытался сохранять два взаимосвязанных свойства одного объекта и проблемы эти никакого отношения к самому механизму привязки свойств к параметрам приложения не имеют, а только лишь к особенностям поведения формы.
Цитата(transparent @  17.5.2011,  21:03 Найти цитируемый пост)
О том что можно получить размер формы? При чем здесь это?

Это ты мне объясни. smile 
Цитата(transparent @  17.5.2011,  21:03 Найти цитируемый пост)
 Или ты о том что можно получить доступ к тому что пытаешься сохранить(в этих настройках - биндингс))? 

Параметры приложения и привязки(биндингс) - разные вещи. Просто совместно они дают такую вот удобную тулзу.
Цитата(transparent @  17.5.2011,  19:56 Найти цитируемый пост)
Как вариант для быстроты разработки приложения это таки гуд(если совсем торопишьсяsmile)..Согласен? 

Ну если конечная цель разработки - сохранение свойств контролов, то действительно можно и не торопиться, но вообще-то всегда есть масса куда более важных и куда более сложных задач. 
А на твой вопрос
Цитата(transparent @  16.5.2011,  20:02 Найти цитируемый пост)
Скажи, и не обидно тебе что все так легко делается?

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.