Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Помогите разобраться Добавлено: 19.11.06 11:54  

Автор вопроса:  Lipastron
Заранее прошу не швыряться в меня помидорами, старыми клавами и (в особенности!) ЭЛТ-мониторами.

Я новичок в мире VB 2005, и только начинаю делать первые шаги в освоении этой очень интересной системы. Весь опыт работы с VB5 и VB6 сильно обесценился в результате изменений синтаксиса... Но вопрос не об этом...

Можно считать меня глупым человеком, но ваш покорный пытается писать программы для увеличения КПД собственного рабочего места, хоть я и не программер...

И вот моя проблема:

Я пишу текстовый редактор и необычным для виндов интерфейсом, и мине крайне важно понять, как настройки этого самого интерфейса сохранять. Т.е. как, не обращаясь к таблицам SQL, сделать файл с установками, который прога могла бы подгружать при запуске?

Вопрос, конечно, детский, но ответу буду рад в любом случае.

Ответить

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

Номер ответа: 1
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #1 Добавлено: 19.11.06 13:01
Юзай реестр...

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 19.11.06 13:32
Юзай реестр...

Ну какой еще реестр???? Что за тяга к извращениям?
В 2005 студии для этих целей предусмотрена специальная фишка которая называется My.Settings и она, как нельзя лучше, для всего этого подойдет.. Все необходимые данные есть в MSDN.

Ответить

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



Вопросов: 2
Ответов: 7
 Профиль | | #3 Добавлено: 19.11.06 14:28
специальная фишка которая называется My.Settings

Огромное спасибо! Вы мне очень помогли!

[img]http://smiles.elze.ru/ani/bow.gif[/img]

Ответить

Номер ответа: 4
Автор ответа:
 Lipastron



Вопросов: 2
Ответов: 7
 Профиль | | #4 Добавлено: 19.11.06 14:52
Чего-то я не въехал...

Итак, у меня три чекбокса, на каждый запоминаем свойство checked в двух состояниях: true / false.

Первый чекбокс работает без проблем, второй вызывает ошибку.

Кад такой:

'Итак, первая система запоминания значения (она работает):

If ComboColor.Enabled = True Then
            ComboColor.Enabled = False
            PictureBox1.Visible = False
            My.Settings.Theme_Change = False
        Else
            ComboColor.Enabled = True
            PictureBox1.Visible = True
            My.Settings.Theme_Change = True
        End If

'Вторая система запоминания значения (не пашет :-(((  ;):

Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
        If CheckBox3.Checked = True Then
            My.Settings.AutoShow_Toolbox = False
            CheckBox3.Checked = False
            PictureBox3.Visible = False
        Else
            CheckBox3.Checked = True
            My.Settings.AutoShow_Toolbox = True
            PictureBox3.Visible = True
        End If

'И писалось это все для того, чтобы:
        If My.Settings.AutoShow_Toolbox = True Then
            Me.Show()
            Me.CheckBox3.Checked = True
            Me.PictureBox3.Visible = True
            Me.MaximizeBox = False
        End If


Что посоветуете?

Ответить

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



Вопросов: 2
Ответов: 7
 Профиль | | #5 Добавлено: 19.11.06 14:55
Кстати, код ошибки привел к разделу справки "Infinite loop"! И откуда у меня там взялся бесконечный цикл????

Ответить

Номер ответа: 6
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #6 Добавлено: 19.11.06 15:14
И откуда у меня там взялся бесконечный цикл????

А ты сам не видишь?
If CheckBox3.Checked = True Then
...
CheckBox3.Checked = False

Эти строчки СНОВА вызывают событие CheckBox3_CheckedChanged, дальше цикл идет по ветке Else.. там мы снова видим.. CheckBox3.Checked = True .. и снова срабатывает CheckBox3_CheckedChanged.. ну и т.д..

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 19.11.06 15:20
И еще.. чтобы сохранить значение настройки, совершенно не обязательно указывать это явно
My.Settings.AutoShow_Toolbox = False

Фишка в том, что у каждого контрола в окне свойств есть такой раздел ApplicationSettings.. Так вот достаточно там связать одно из свойств котрола ( в данном случае Checked ) с соответствующей переменной вашей настройки (AutoShow_Toolbox) и все изменения этого свойства будут фиксироваться автоматически без Вашего участия. И соответственно будут восстанавливать свое состояние в момент загрузки формы..

Ответить

Номер ответа: 8
Автор ответа:
 Lipastron



Вопросов: 2
Ответов: 7
 Профиль | | #8 Добавлено: 19.11.06 15:20
И как мне это обойти?..

Ответить

Номер ответа: 9
Автор ответа:
 Lipastron



Вопросов: 2
Ответов: 7
 Профиль | | #9 Добавлено: 19.11.06 15:22
Опс... Написал это до поста о связях в свойствах...

Большущее спасибо!

Ответить

Номер ответа: 10
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #10 Добавлено: 19.11.06 15:29
Если вы правильно все свяжете, то весь ваш код из события CheckBox3_CheckedChanged вседется к одной единственной строчке
PictureBox3.Visible = Not CheckBox3.Checked

Все остальное можно выкинуть т.к. эти действия будут выполняться автоматически..

Ответить

Номер ответа: 11
Автор ответа:
 Lipastron



Вопросов: 2
Ответов: 7
 Профиль | | #11 Добавлено: 19.11.06 15:32
Как просто!

Спасибо - ни в одной книжке еще такого не встречал...

Ответить

Номер ответа: 12
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 19.11.06 15:38
В книжках, как правило, мало пишут о таких вещах.. А если и пишут, то очень расплывчато.. приходится доходить методом научного тыка..
Читай между строк..
Удачи!

Ответить

Номер ответа: 13
Автор ответа:
 Lipastron



Вопросов: 2
Ответов: 7
 Профиль | | #13 Добавлено: 19.11.06 16:06
Кстати, может быть, Вы мне еще одну вещицу подскажете?

Проблема такая: у меня есть панель с элементами управления внутри нее, нона может изменять свою высоту параллельно с формой. Однако это всегда должно осуществляться так, чтобы на панели помещались _все_ инструменты - скроллбар очень портит вид.
А инструменты у меня можно сворачивать и разворачивать - отсюда вместимость панели каждый раз требуется разная...

Я тыкался-тыкался, но ничего кроме вот этого не натыкал:

form1.minimumsize = 220, 30 + panel1.minimumsize + panel2.minimumsize...


Вот не хочет кушать, и все. Я даже переменные загонял - не есть, хоть тресни!

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

Ответить

Номер ответа: 14
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #14 Добавлено: 19.11.06 19:14
minimumsize, это тип Size.. А значит писать надо примерно так:
Form1.MinimumSize = New Size(250,250)

Ответить

Номер ответа: 15
Автор ответа:
 Viktor



Вопросов: 2
Ответов: 18
 Профиль | | #15 Добавлено: 02.07.07 17:05
Если я правильно понял смысл вопроса, то вставь свою панель в ToolStripContainer. Сам контейнер можно заанкорить или поставить свойство Dock в значение "Fill" ну и т.д. В самом контейнере всё будет всегда оставаться на своих места без Resize'а

Ответить

Страница: 1 |

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



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