Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: houselab.narod.ru
 Профиль | | #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

    ;Dim a As String
    ;Dim 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-сайт: xury.zx6.ru
 Профиль | | #11
Добавлено: 23.06.06 00:48
Offtop:
а чё значит (-) в теме?

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 23.06.06 00:53
хотелось бы сохранять значения не во внешнем файле, а , например, в реестре Windows

А в чем трудности??? Куда душе угодно, там и сохраняй.. хочешь в реестр, хочешь в xml-файл, хочешь в Binary... и на крайний случай - в текстовый!!!

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #13 Добавлено: 23.06.06 01:42
Лично мне не нравится использовать реестр.. там и без этого хлама полно.. я предпочитаю хранить все свои вещи в папке с исполняемым файлом в виде Binary-файла.. как говорится.. все своё ношу с собой..
Сделать это можно примерно так:

Imports System.IO
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, примите мои преференции за подробное разъяснение!

Ответить

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

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



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