Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 |

 

  Вопрос: Как сохранить изменение размеров формы? (-) Добавлено: 21.06.06 16:01  

Автор вопроса:  Sergey

Ответить

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

Номер ответа: 16
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #16 Добавлено: 23.06.06 14:13
offtop: сериализация - пока моё слабое место в VB[dot]NET. В vb6 ничего подобного не было, вот терь с чем-то мучаюсь))

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #17 Добавлено: 23.06.06 16:04
Sacred Phoenix
уверяю тебя.. сериализация не сложнее пареной репы.. и что особенно радует это очень мощный инструмент.. я теперь без него как без рук..
так что не поленись, обязательно разберись с этой фишкой..

Ответить

Номер ответа: 18
Автор ответа:
 K&M



ICQ: 225442067 

Вопросов: 20
Ответов: 170
 Профиль | | #18 Добавлено: 23.06.06 19:27
Припмер с реестром:


Private sub F_Load(byval sender as object,byval e as EventArgs) Handles MyBase.Load
const RPath as string = "SOFTWARE\\MyAppSettings"
Dim RK As Microsoft.Win32.RegistryKey
Dim RG As Microsoft.Win32.Registry
RK = RG.LocalMachine.OpenSubKey(RPath, True)
Me.Width = RK.GetValue("MainWin_Width";)
Me.Height = RK.GetValue("MainWin_Height";)
Me.Left = RK.GetValue("MainWin_Left";)
Me.Top = RK.GetValue("MainWin_Top";)
End Sub

Private sub F_Closing(byval sender as object,byval e as System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
const RPath as string = "SOFTWARE\\MyAppSettings"
Dim RK As Microsoft.Win32.RegistryKey
Dim RG As Microsoft.Win32.Registry
RK = RG.LocalMachine.CreateSubKey(RPath, True)
RK.SetValue("MainWin_Width", Me.Width)
RK.SetValue("MainWin_Height", Me.Height)
RK.SetValue("MainWin_Left", Me.Left)
RK.SetValue("MainWin_Top", Me.Top)
End Sub

Ответить

Номер ответа: 19
Автор ответа:
 K&M



ICQ: 225442067 

Вопросов: 20
Ответов: 170
 Профиль | | #19 Добавлено: 23.06.06 19:28
RK = RG.LocalMachine.CreateSubKey(RPath, True)

>>

RK = RG.LocalMachine.CreateSubKey(RPath)

' Ошибочка, тут же нет второго параметра...

Ответить

Номер ответа: 20
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #20 Добавлено: 23.06.06 20:04
а кто знает, куды сохраняются настройки, которые из My.Settings?

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #21 Добавлено: 23.06.06 20:10
а кто знает, куды сохраняются настройки, которые из My.Settings?

в одну из скрытых папок в Data Application..
запусти поиск по системному диску.. ищи файл user.config
это как раз то, что ты ищешь...

Ответить

Номер ответа: 22
Автор ответа:
 Алексей



ICQ: 207504159 

Вопросов: 1
Ответов: 14
 Web-сайт: lehs.info
 Профиль | | #22
Добавлено: 23.06.06 20:28
Блин! Вот читаю - такие сложности люди придумывают! Хотя уже выдуман способ проще:

Private Sub Form_Load()
Dim A As Integer
A = GetSetting(App.ProductName, "1", "LEFT";)
If A <> 0 Then Me.Left = A
A = GetSetting(App.ProductName, "1", "TOP";)
If A <> 0 Then Me.Top = A
End Sub

Private Sub Form_Resize()
If Me.WindowState = 0 Then
    SaveSetting App.ProductName, "1", "LEFT", Me.Left
    SaveSetting App.ProductName, "1", "TOP", Me.Top
End If
End Sub

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #23 Добавлено: 23.06.06 21:30
Алексей,
Методы SaveSetting и GetSetting - это атавизмы VB6 и оставлены лишь для облегчения перехода на .NET.
Во всех справочных материалах Microsoft настоятельно рекомендует НЕ использовать подобные функциии, поскольку нет никакой гарантии, что их поддержка будет продолжена в следующих версиях FW...
Так что если уж писать настройки в реестр, то способ K&M в данном случае более приемлем(имхо)...
Хотя и он нуждается в доработке.. как минимум:
- возврат дефолтовых значений в случае отсутствия ключа при первой загрузе
- обработка ошибок доступа к реестру
Но это уже на совести разработчика..

Ответить

Номер ответа: 24
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #24 Добавлено: 23.06.06 21:32
Ненавижу GetSetting и SaveSetting! Пишут всё в HKCU\Software\VB and VBA Program Settings! Если уж и писать в реестр, то по-человечески, через API Reg*.

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #25 Добавлено: 23.06.06 21:44
Если уж и писать в реестр, то по-человечески, через API Reg*.

Тут я с тобой не соглашусь... ибо целесообразнее использовать встроенный класс(см. пример K&M)
Microsoft.Win32.Registry

Зачем использовать неуправляемый код, когда есть возможность все сделать по людски?

Ответить

Номер ответа: 26
Автор ответа:
 K&M



ICQ: 225442067 

Вопросов: 20
Ответов: 170
 Профиль | | #26 Добавлено: 23.06.06 21:50
Так что если уж писать настройки в реестр, то способ K&M в данном случае более приемлем(имхо)...
Хотя и он нуждается в доработке.. как минимум:
- возврат дефолтовых значений в случае отсутствия ключа при первой загрузе
- обработка ошибок доступа к реестру
Но это уже на совести разработчика..


Помилуйте! Я бы написал, но у меня рука сломана! Одной пишу, так пусть начинающие найдут ошибки и исправят - полезней будет.

Ответить

Номер ответа: 27
Автор ответа:
 K&M



ICQ: 225442067 

Вопросов: 20
Ответов: 170
 Профиль | | #27 Добавлено: 23.06.06 21:52

Private Sub Form_Resize()


Кстати, вот ты человек, о сложности говоришь, а сам додумался запихнуть код в Form.Resize

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #28 Добавлено: 23.06.06 21:59
так пусть начинающие найдут ошибки и исправят - полезней будет.

:-)))
поддерживаю.. именно поэтому и написал, что это остается на совести разработчика..(не твоей, а того, кто будет использовать твой код)

А что касается Form_Resize, то Алексей по ходу просто форумы попутал по неопытности.. он код-то для VB6 выложил.. :-)))

Ответить

Номер ответа: 29
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #29 Добавлено: 23.06.06 21:59
Тут я с тобой не соглашусь... ибо целесообразнее использовать встроенный класс(см. пример K&M)

Здесь я сам с собой не соглашусь)) я настолько привык к vb6, что до сих пор хочеЦа в реестр лезть через API))

Ответить

Номер ответа: 30
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #30 Добавлено: 23.06.06 22:02
А что касается Form_Resize, то Алексей по ходу просто форумы попутал по неопытности.. он код-то для VB6 выложил.. :-)))

Ну это во-первых)) А во-вторых, наскока я понял K&M, он имел в виду то, что Алексей сунул код в Form_Resize, а не в Form_Unload (если уж это vb6)

Ответить

Страница: 1 | 2 | 3 |

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



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