Страница: 1 | 2 | 3 | 
		
		 
			   
			 
			 
			 
			 
			
 
  
		
     
  
    
Вопрос: Как сохранить изменение размеров формы? (-)
     
    
Добавлено: 21.06.06 16:01
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Sergey
 Sergey
      
       
  
Соб-но все :)
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 43
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: student-uni
 student-uni



Вопросов: 122
Ответов: 257
      
 Профиль |  | #1
       
Добавлено:  21.06.06 17:09
       
    
       
  
В режиме редактирования или исполнения ?
 
    
В редактировании - кнопочку с дискеткой нажать
А в исполнении - а когда он пропадает ? Если ты изменил размеры формы - они стоят до следующего её вызова
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: EROS
 EROS




Вопросов: 58
Ответов: 4255
 Профиль |  | #2
       
Добавлено:  21.06.06 17:44
       
    
       
  
и вообще, что значит сохранить?
 
    
сохранить в файл(запомнить) или еще что то??
Ты уж потрудись, сформулируй вопрос по человече..
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: Sergey
 Sergey






Вопросов: 15
Ответов: 55
      
 Профиль |  | #3
       
Добавлено:  21.06.06 21:09
       
    
       
  
Формулирую  
     
Сохранить - значит: при изменении размеров формы во время исполнения сделать так, чтобы после закрытия приложения и при его новом запуске форма имела последние установленные размеры. 
VS 2003
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: Sacred Phoenix
 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
 Nikolai






Вопросов: 23
Ответов: 58
      
 Профиль |  | #6
       
Добавлено:  22.06.06 07:28
       
    
       
  
Создай кнопку:
 
    
Public Class Form1
    Inherits System.Windows.Forms.Form
     im a As String
im a As String
     im b 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
 Sergey






Вопросов: 15
Ответов: 55
      
 Профиль |  | #7
       
Добавлено:  22.06.06 08:08
       
    
       
  
Sacred Phoenix, можно по-подробнее?
 
    
Nikolai, хотелось бы сохранять значения не во внешнем файле, а , например, в реестре Windows. Конечно, если это не противоречит чему-нибудь  
В любом случае, допишите. Спасибо!
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа: Nikolai
 Nikolai






Вопросов: 23
Ответов: 58
      
 Профиль |  | #8
       
Добавлено:  22.06.06 23:12
       
    
       
  
А почему тебя не устраивает в таком виде?
 
    
А вот подробнее, это что смысл проги или как она работает?
Короче при изменении размера окна a=Me.Width.ToString("а"-числовое конвертируем в "а"-строковое)
При нажатии кнопки создаём фаил и записываем данные,если он создан то просто переписываем данные.
Дальше у меня самого проблема не могу считать данные
А надо сделать чтоб при загрузке считать данные и присвоить их ширине и высоте.Буду дальше пробовать.
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа: Nikolai
 Nikolai






Вопросов: 23
Ответов: 58
      
 Профиль |  | #9
       
Добавлено:  22.06.06 23:12
       
    
       
  
А почему тебя не устраивает в таком виде?
 
    
А вот подробнее, это что смысл проги или как она работает?
Короче при изменении размера окна a=Me.Width.ToString("а"-числовое конвертируем в "а"-строковое)
При нажатии кнопки создаём фаил и записываем данные,если он создан то просто переписываем данные.
Дальше у меня самого проблема не могу считать данные
А надо сделать чтоб при загрузке считать данные и присвоить их ширине и высоте.Буду дальше пробовать.
		
	  
			 
	
		 
    
       
    
Номер ответа: 10 
      
Автор ответа: Sacred Phoenix
 Sacred Phoenix









ICQ: 304238252 
Вопросов: 52
Ответов: 927
      
 Профиль |  | #10
       
Добавлено:  22.06.06 23:20
       
    
       
  
насчёт (ApplicationSettings) для формы я поспешил. Просто невозможно привязать настройки к свойству Size формы. Попробуй покопать в сторону My.Settings (если в vb2003 есть пространство имен My, чего я, к сожалению, не знаю. В vb2005 оно есть).
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 11 
      
Автор ответа: Morpheus
 Morpheus




Вопросов: 224
Ответов: 3777
      
 Web-сайт:  
 Профиль |  | #11
      
Добавлено:  23.06.06 00:48
       
    
       
  
Offtop:
 
    
а чё значит (-) в теме?
		
	  
			 
	
		 
    
       
    
Номер ответа: 12 
      
Автор ответа: EROS
 EROS




Вопросов: 58
Ответов: 4255
 Профиль |  | #12
       
Добавлено:  23.06.06 00:53
       
    
       
  
 
    
А в чем трудности??? Куда душе угодно, там и сохраняй.. хочешь в реестр, хочешь в xml-файл, хочешь в Binary... и на крайний случай - в текстовый!!!
		
	  
			 
	
		 
    
       
    
Номер ответа: 13 
      
Автор ответа: EROS
 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
 EROS




Вопросов: 58
Ответов: 4255
 Профиль |  | #14
       
Добавлено:  23.06.06 01:59
       
    
       
  
упс.. поправка..
 
    
Код сохранения параметров целесообразнее перенести в процедуру FormClosing
		
	  
			 
	
		 
    
       
    
Номер ответа: 15 
      
Автор ответа: Sergey
 Sergey






Вопросов: 15
Ответов: 55
      
 Профиль |  | #15
       
Добавлено:  23.06.06 06:48
       
    
       
  
Morpheus,
 
    
(-) в теме - это благоприобретенное из других форумов  
Означает, что весь вопрос сформулирован в заголовке темы и нет нужды открывать текст темы, если нет ответа или желания отвечать. 
Как оказалось, это не в моем случае  
EROS, примите мои преференции за подробное разъяснение!