Страница: 1 | 2 | 3 |
Вопрос: Как сохранить изменение размеров формы? (-)
Добавлено: 21.06.06 16:01
Автор вопроса: Sergey
Соб-но все :)
Ответы
Всего ответов: 43
Номер ответа: 1
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #1
Добавлено: 21.06.06 17:09
В режиме редактирования или исполнения ?
В редактировании - кнопочку с дискеткой нажать
А в исполнении - а когда он пропадает ? Если ты изменил размеры формы - они стоят до следующего её вызова
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 21.06.06 17:44
и вообще, что значит сохранить?
сохранить в файл(запомнить) или еще что то??
Ты уж потрудись, сформулируй вопрос по человече..
Номер ответа: 3
Автор ответа:
Sergey
Вопросов: 15
Ответов: 55
Профиль | | #3
Добавлено: 21.06.06 21:09
Формулирую
Сохранить - значит: при изменении размеров формы во время исполнения сделать так, чтобы после закрытия приложения и при его новом запуске форма имела последние установленные размеры.
VS 2003
Номер ответа: 4
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #4
Добавлено: 21.06.06 21:33
Imho, это через (ApplicationSettings) решается
Номер ответа: 5
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #5
Добавлено: 21.06.06 23:10
Не знаю как в .NET, но в VB6 для этого рекомендуется отслеживать событие Form_Resize() и записывать Width и Height формы в файл.
А при загрузке формы эти данные нужно прочитать и установить.
Вот и всё.
Номер ответа: 6
Автор ответа:
Nikolai
Вопросов: 23
Ответов: 58
Профиль | | #6
Добавлено: 22.06.06 07:28
Создай кнопку:
Public Class Form1
Inherits System.Windows.Forms.Form
 im a As String
 im b As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FileOpen(1, "Размер окна.txt", OpenMode.Output)
Print(1, a, b)
FileClose(1)
End Sub
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
a = Me.Width.ToString
b = Me.Height.ToString
End Sub
End Class
в текстовом сохраняешь ,а потом оттуда их читаешь. Если надо вечером допишу.
Номер ответа: 7
Автор ответа:
Sergey
Вопросов: 15
Ответов: 55
Профиль | | #7
Добавлено: 22.06.06 08:08
Sacred Phoenix, можно по-подробнее?
Nikolai, хотелось бы сохранять значения не во внешнем файле, а , например, в реестре Windows. Конечно, если это не противоречит чему-нибудь
В любом случае, допишите. Спасибо!
Номер ответа: 8
Автор ответа:
Nikolai
Вопросов: 23
Ответов: 58
Профиль | | #8
Добавлено: 22.06.06 23:12
А почему тебя не устраивает в таком виде?
А вот подробнее, это что смысл проги или как она работает?
Короче при изменении размера окна a=Me.Width.ToString("а"-числовое конвертируем в "а"-строковое)
При нажатии кнопки создаём фаил и записываем данные,если он создан то просто переписываем данные.
Дальше у меня самого проблема не могу считать данные
А надо сделать чтоб при загрузке считать данные и присвоить их ширине и высоте.Буду дальше пробовать.
Номер ответа: 9
Автор ответа:
Nikolai
Вопросов: 23
Ответов: 58
Профиль | | #9
Добавлено: 22.06.06 23:12
А почему тебя не устраивает в таком виде?
А вот подробнее, это что смысл проги или как она работает?
Короче при изменении размера окна a=Me.Width.ToString("а"-числовое конвертируем в "а"-строковое)
При нажатии кнопки создаём фаил и записываем данные,если он создан то просто переписываем данные.
Дальше у меня самого проблема не могу считать данные
А надо сделать чтоб при загрузке считать данные и присвоить их ширине и высоте.Буду дальше пробовать.
Номер ответа: 10
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #10
Добавлено: 22.06.06 23:20
насчёт (ApplicationSettings) для формы я поспешил. Просто невозможно привязать настройки к свойству Size формы. Попробуй покопать в сторону My.Settings (если в vb2003 есть пространство имен My, чего я, к сожалению, не знаю. В vb2005 оно есть).
Номер ответа: 11
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #11
Добавлено: 23.06.06 00:48
Offtop:
а чё значит (-) в теме?
Номер ответа: 12
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #12
Добавлено: 23.06.06 00:53
А в чем трудности??? Куда душе угодно, там и сохраняй.. хочешь в реестр, хочешь в xml-файл, хочешь в Binary... и на крайний случай - в текстовый!!!
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 23.06.06 01:42
Лично мне не нравится использовать реестр.. там и без этого хлама полно.. я предпочитаю хранить все свои вещи в папке с исполняемым файлом в виде Binary-файла.. как говорится.. все своё ношу с собой..
Сделать это можно примерно так:
Imports System.Runtime.Serialization.Formatters.Binary
Public Class Form1
'// Path to settings file
Private filePath As String = Path.Combine(Application.StartupPath, "settings.bin"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'// Load Location & Size
Dim fileStream As FileStream = Nothing
Try
If File.Exists(filePath) Then
fileStream = File.OpenRead(filePath)
Dim formatter As New BinaryFormatter
Dim settings() As Object = formatter.Deserialize(fileStream)
If settings.Length = 2 Then
Me.Location = CType(settings(0), Point)
Me.Size = CType(settings(1), Size)
End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
If fileStream IsNot Nothing Then fileStream.Close()
End Try
'// Add Handlers
AddHandler Me.LocationChanged, AddressOf SaveFormSettings
AddHandler Me.ResizeEnd, AddressOf SaveFormSettings
End Sub
Private Sub SaveFormSettings(ByVal sender As Object, ByVal e As System.EventArgs)
'// Save Location & Size
Dim fileStream As FileStream = Nothing
Try
Dim settings() As Object = New Object() {Me.Location, Me.Size}
Dim formatter As New BinaryFormatter
fileStream = File.Open(filePath, FileMode.Create)
formatter.Serialize(fileStream, settings)
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
If fileStream IsNot Nothing Then fileStream.Close()
End Try
End Sub
End Class
Так же легко ты можешь сохранить свои настройки и в xml и в реестре.. это уже дело личных предпочтений...
Номер ответа: 14
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #14
Добавлено: 23.06.06 01:59
упс.. поправка..
Код сохранения параметров целесообразнее перенести в процедуру FormClosing
Номер ответа: 15
Автор ответа:
Sergey
Вопросов: 15
Ответов: 55
Профиль | | #15
Добавлено: 23.06.06 06:48
Morpheus,
(-) в теме - это благоприобретенное из других форумов
Означает, что весь вопрос сформулирован в заголовке темы и нет нужды открывать текст темы, если нет ответа или желания отвечать.
Как оказалось, это не в моем случае
EROS, примите мои преференции за подробное разъяснение!