Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
mamadjonov
1

Сохранение настроек при закрытии формы

05.02.2014, 10:30. Показов 2842. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
И так вопрос.
У меня такая ситуация, можно ли разрулить.
У меня форма с textbox, больше ничего, в textbox пишем например: "CyberForum". Потом закрываем форму, и потом опять открываем, после открытии в textbox должно быть "CyberForum". Поняли суть.
Пожалуйста. Без никакой базы данных, нужен простой код. Благодарен.
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2014, 10:30
Ответы с готовыми решениями:

Сохранение данных на форме при закрытии Form2
Есть программа. Она содержит 2 формы, Form1 и Form2. Можно ли как-то сохранить введенные данные в...

Сохранение свойств контроллов на форме при закрытии программы
Мне надо чтобы объекты формы если перезапустить форму оставались как есть,( ну например если...

Сохранение данных приложения при закрытии для последующей работы с ними
Здравтсвуйте, у меня установлена программа visual Basic 2005, уже есть приложение, когда я его...

Выдать запрос при закрытии формы
Хотелось бы чтобы при закрытии формы выдавалось сообщение и в зависимости от нажатой кнопки форма...

16
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
05.02.2014, 11:23 2
Можно пойти несколькими путями, но я бы Вам посоветовал сделать следующее:
Выбираете текстбокс, следуете в окно свойств.
Там есть группа ApplicationSettings
В ней есть PropertyBinding
Справа будет пусто, щелкаете. Появится маленькая кнопочка. Жмете.
Выйдет окно "Параметры приложения", по умолчанию выбрано будет Text

Напротив жмете и выбираете "Создать"
Задаете свойство Name

Все настройки закрываете по "ОК"
2
140 / 98 / 20
Регистрация: 11.03.2013
Сообщений: 147
05.02.2014, 14:48 3
Цитата Сообщение от mamadjonov Посмотреть сообщение
Пожалуйста. Без никакой базы данных, нужен простой код. Благодарен.
может, в таком случае, и не закрывать форму, а спрятать:

VB.NET
1
2
3
4
    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        e.Cancel = True
        Me.Hide()
    End Sub
?
1
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 7
05.02.2014, 15:40 4
[Не цитируйте посты собеседников целиком]

Простите это я создал тему и не могу войти с аккаунта mamadjonov. Восстановить тоже не получается.

Спасибо ваши решении помогло на 50%. Вышло еще вопросик, потом после того как перетаскиваем прогу на другую комп, это сообщения от textbox исчезнет.
Мне нужна чтобы и при перетаскиванием в другую комп сообщение сохранилась. Спасибо за решении.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
05.02.2014, 15:50 5
Цитата Сообщение от budapesht Посмотреть сообщение
Вышло еще вопросик, потом после того как перетаскиваем прогу на другую комп, это сообщения от textbox исчезнет
Исчезнет.

Это надо было писать в первом посте, потому, что решение будет совсем другим

Добавлено через 2 минуты
У нас вообще складывается дурная практика, уточнять задачи после того, как решение было дано.

По теме:
Надо сохранять данные в файл и читать оттуда, но учтите, что файл все время придется таскать за экзешником
1
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 7
05.02.2014, 15:55 6
Простите торопился и забыл. Можете мне помочь. Мне это решения очень важна!

Добавлено через 4 минуты
на мой случай не подходить таскать файлик. Нет никакого способа чтоли?
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
05.02.2014, 15:59 7
Ваш прежний аккаунт я заблокировал, держать 2 учетки на форуме нельзя.

По теме
VB.NET
1
2
3
4
5
6
7
8
9
10
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        IO.File.WriteAllText(Application.StartupPath & "\data.txt", TextBox1.Text, System.Text.Encoding.Default)
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            TextBox1.Text = IO.File.ReadAllText(Application.StartupPath & "\data.txt", System.Text.Encoding.Default)
        Catch ex As Exception
        End Try
    End Sub
Добавлено через 4 минуты
Цитата Сообщение от budapesht Посмотреть сообщение
на мой случай не подходить таскать файлик. Нет никакого способа чтоли?
Тогда эти решения не пойдут. Информация должна где-то храниться, в реестре, в файле, в файле-конфиге.

Но всего этого не будет на компьютере, куда Вы только что скинули программу (Ваших настроек).
1
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 7
05.02.2014, 16:01 8
Цитата Сообщение от Памирыч Посмотреть сообщение
По теме
Уважаемый.
На этот вариант же тоже надо таскать файл тхт вместе с прогой. Этих способов я тоже знаю
Нету способа какого нибудь, без перетаскиванием файла за ехе.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
05.02.2014, 16:02 9
Есть вариант, хранить настройки на веб-сервере. Но это уже изврат потому, что у Вас должен быть какой-то доступ к нему, второе - у того кому скинули программу должно быть интернет-подключение

Других способов, увы, не вижу
1
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 7
05.02.2014, 16:11 10
Цитата Сообщение от Памирыч Посмотреть сообщение

Других способов, увы, не вижу
Тогда мне может помочь еще один вариант. Спасибо!!!
Извините этот вопрос уже не по теме. Но так как мне срочно нужна помощь, прощу прощения.

Можно ли создать программу, для создание ехе проги. Например:
Откроем прогу, пишем в текстбокс сообщению, потом типа нажимаем кнопку готово. Оно создает нам на рабочий стол маленькую програмку с текстбоксом, которая у него в свойстве text: стоит наше сообщения.
Поняли?
0
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
05.02.2014, 16:28 11
В FAQ есть про это...
0
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 7
05.02.2014, 16:42 12
простите, помогите мне пожалуйста!!!
если не поняли суть, могу объяснить задавайте вопросов.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
05.02.2014, 17:28 13
Лучший ответ Сообщение было отмечено как решение

Решение

budapesht, есть и такая забава.
Но динамическая компиляция - это полдела.
Настоящий квест Вас ждет, когда Вы будете сами создавать формочку, компоненты и упаси, события.

Если Вы с этим работали, то проблем нет, но если Вы в программировании новичок, Вы должны отдавать себе отчет, что беретесь сразу за 2 вещи - динамическую компиляцию и динамическое создание объектов.
Подумайте, а стоит ли оно поставленной задачи.
Даю пищу для размышлений.




На форме 2 текстбокса и кнопка.
В первый текстбокс вставьте следующее:

Кликните здесь для просмотра всего текста
Код
Imports System
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
'==============================
Public Module CompileTest
    Sub Main()
        '|||||||||
        Dim Frm As New Form
        With Frm
            .StartPosition = FormStartPosition.CenterScreen
            .Width = 200
            .Height = 100
            .MaximizeBox = False
            .MinimizeBox = False
            .FormBorderStyle = FormBorderStyle.FixedSingle
        End With
        Dim Tb As New TextBox
        Frm.Controls.Add(Tb)
        With Tb
            .Left = 10
            .Top = 20
            .Width = Frm.Width - 30
            .Text = "[CONTENT]"
        End With

        Frm.ShowDialog()
        '|||||||||
    End Sub
End Module


Второй текстбокс - маленький и пустой. В него Вы будете вводить какое-то слово

Код формы:
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Imports Microsoft.VisualBasic
Imports System.CodeDom.Compiler
 
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SourCode As String = TextBox1.Text.Replace("[CONTENT]", TextBox2.Text)
        Dim ExFile As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) & "\Program.exe"
        Dim VB As New VBCodeProvider()
        Dim Compiler As ICodeCompiler = VB.CreateCompiler
        Dim Param As New CompilerParameters()
        Param.GenerateExecutable = True
        Param.OutputAssembly = ExFile
        Param.IncludeDebugInformation = False
        Param.CompilerOptions = "/target:winexe"
        Dim Asm As System.Reflection.Assembly
        For Each Asm In AppDomain.CurrentDomain.GetAssemblies()
            Param.ReferencedAssemblies.Add(Asm.Location)
        Next
        Dim Results As CompilerResults
        Results = Compiler.CompileAssemblyFromSource(Param, SourCode)
        If Results.Errors.Count > 0 Then
            Dim Err As CompilerError
            Dim ErrorString As String = ""
            For Each Err In Results.Errors
                ErrorString &= Err.ToString()
            Next
            MessageBox.Show(ErrorString)
        Else
            Process.Start(ExFile)
        End If
    End Sub
 
End Class



Пишем текст в текстбокс, жмем на кнопку.
На столе появится экзешник "Program.exe" (он запустится)
Изображения
  
3
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 7
05.02.2014, 18:51 14
извините не очень хорошо понял. Можете пожалуйста перенаправить меня на какую нить учебник по этой теме. Спасибо вам Помирыч)))
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
05.02.2014, 19:26 15
budapesht, Да, есть такое дело, материал не для новичка.
Литературы под рукой нет, да и не было, что-то годами собиралось по крупицам, что-то ребята подсказывали, а что-то и сам постигал методом тыка.

Чтобы написать приведенный код, достаточно почитать тут https://www.cyberforum.ru/post1973341.html и тут https://www.cyberforum.ru/post2285872.html

Darth Coder Вам дал верное направление, сюда: Готовые решения и полезные коды на Visual Basic .NET (Часть-1)

Главное, знать, что Вам нужно и как это называется.
1
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 7
06.02.2014, 16:18 16
Помырич не можете ли вы создать и скинуть проект программы. Пожалуйста. а то не понятно. я читал всю Faq но все равно не понял, не работает то что я пишу. у меня визуал бэйсик.нет 2012.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
06.02.2014, 16:43 17
Прилагаю. Только у меня студия древняя - 2008
Вложения
Тип файла: rar Динамический компилятор.rar (75.6 Кб, 9 просмотров)
0
06.02.2014, 16:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2014, 16:43
Помогаю со студенческими работами здесь

При закрытии одной формы показать другую
Подскажите пож как можно при закрытии формы вывести другую? (Закрываешь Form1 и открывается Form2)...

Заполнение DataGrid при закрытии дочерней формы
Доброго времени суток, коллеги. Подскажите с хитрой задачкой. Есть MDI-приложение. Через менюшку...

Передача дополнительного параметра при закрытии формы
Здравствуйте, прошу помощи, уже несколько дней не могу найти ответ, суть вопроса: При загрузке...

Завершение работы BackgroundWorker'a при закрытии формы
Всем желаю здравствовать и доброго времени суток! Есть такая проблема: для обновления данных в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru