Skocz do zawartości

Visual Basic - Prośba o pomoc


nwds12

Rekomendowane odpowiedzi

Siemka, Potrzebuję małej pomocy z VB. Chodzi o to że chce zrobić tak, aby po zamknięciu apki dane wpisane w formularzu nie kasowały się. Czyli że otwieram apkę ponowie a dane mają być uzupełnione. Teraz jest tak że wypełniam formularz, zapisuję go ale jak zamknę i otworzę ponownie to dane są wyczyszczone. Poniżej zamieszczam kod całej apki. Myślałem że usunięcie Private Sub ClearConfig () pomoże ale jednak nie ;) Gdyby ktoś wiedział jak to ogarnąć to proszę o pomoc tutaj w temacie albo na priv, chętnie zapłacę za pomoc w tej kwestii ;)

Public Class Form1
    Private Sub ClearConfig()
        If Not My.Computer.FileSystem.DirectoryExists("config") Then
            My.Computer.FileSystem.CreateDirectory("config")
        End If

        System.IO.File.WriteAllText("config\\pole1.txt", "")
        System.IO.File.WriteAllText("config\\content.txt", "")
        System.IO.File.WriteAllText("config\\lista.txt", "")
        System.IO.File.WriteAllText("config\\checkbox.txt", "")
        System.IO.File.WriteAllText("config\\captcha.txt", "")
        System.IO.File.WriteAllText("config\\karta2.txt", "")
        System.IO.File.WriteAllText("config\\karta3.txt", "")

        FlatTextBox1.Text = ""
        FlatTextBox2.Text = ""
        FlatTextBox3.Text = ""
        FlatTextBox4.Text = ""
        RadioButton1.Checked = False
        RadioButton2.Checked = False
        RadioButton3.Checked = False
        FlatCheckBox1.Checked = False
        FlatCheckBox2.Checked = False
        FlatCheckBox3.Checked = False
        FlatCheckBox4.Checked = False
        FlatComboBox1.SelectedItem = -1

    End Sub

    Private Sub SaveConfig()
        If Not My.Computer.FileSystem.DirectoryExists("config") Then
            My.Computer.FileSystem.CreateDirectory("config")
        End If

        Dim Pole1 As String = ""
        If RadioButton1.Checked Then
            Pole1 = "Opcja 1"
        End If
        If RadioButton2.Checked Then
            Pole1 = "Opcja 2"
        End If
        If RadioButton3.Checked Then
            Pole1 = "Opcja 3"
        End If
        System.IO.File.WriteAllText("config\\pole1.txt", Pole1)

        System.IO.File.WriteAllText("config\\content.txt", FlatTextBox1.Text)
        System.IO.File.WriteAllText("config\\lista.txt", FlatComboBox1.SelectedItem.ToString())

        Dim objWriter As New System.IO.StreamWriter("config\\checkbox.txt")
        If FlatCheckBox1.Checked Then
            objWriter.WriteLine("1")
        End If
        If FlatCheckBox2.Checked Then
            objWriter.WriteLine("2")
        End If
        If FlatCheckBox3.Checked Then
            objWriter.WriteLine("3")
        End If
        If FlatCheckBox4.Checked Then
            objWriter.WriteLine("4")
        End If
        objWriter.Close()

        System.IO.File.WriteAllText("config\\captcha.txt", FlatTextBox2.Text)
        System.IO.File.WriteAllText("config\\karta2.txt", FlatTextBox3.Text)
        System.IO.File.WriteAllText("config\\karta3.txt", FlatTextBox4.Text)

    End Sub

    Private Function ValidateFields() As Boolean
        Dim IsValidated As Boolean = True

        IsValidated = (RadioButton1.Checked Or RadioButton2.Checked Or RadioButton3.Checked)
        IsValidated = (FlatTextBox1.Text.Length > 0)
        IsValidated = (FlatTextBox2.Text.Length > 0)
        IsValidated = (FlatTextBox3.Text.Length > 0)
        IsValidated = (FlatCheckBox1.Checked Or FlatCheckBox2.Checked Or FlatCheckBox3.Checked Or FlatCheckBox4.Checked)
        IsValidated = (FlatComboBox1.SelectedIndex > -1)

        Return IsValidated
    End Function

    Private Sub FlatButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FlatButton1.Click
        If (ValidateFields()) Then
            SaveConfig()
            MsgBox("Zapisano!")
        Else
            MsgBox("Nie wypełniłeś wszystkich pól formularza!", MsgBoxStyle.Critical)
        End If

    End Sub

    Private Sub FlatButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FlatButton2.Click
        ClearConfig()
        MsgBox("Wyczyszczono!")
    End Sub

    Private Sub FlatClose1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FlatClose1.Click

    End Sub

    Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
        Dim Res As Windows.Forms.DialogResult = MsgBox("Czy chcesz zapisać zmiany przed wyjściem?", MsgBoxStyle.YesNoCancel, "Potwierdzenie")

        If Res = DialogResult.Yes Then
            SaveConfig()
        ElseIf Res = DialogResult.Cancel Then
            e.Cancel = True
        End If
    End Sub

    Private Sub FormSkin1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FormSkin1.Click

    End Sub
End Class
Odnośnik do komentarza

Zarejestruj się za darmo i naucz się zarabiać online!

  • Dostęp do darmowych poradników pokazujących krok po kroku jak zarabiać w Internecie
  • Sposoby zarabiania niepublikowane nigdzie indziej
  • Aktywna społeczność, która pomoże Ci rozwiązać problemy i doradzi
  • Profesjonalne treści na temat SEO, social media, afiliacji, kryptowalut, sztucznej inteligencji i wiele więcej!

Moja rada: przerzuć się na c#.

e2704d7e46.gif

using System;
using System.IO;
using System.Windows.Forms;
using System.Xml.Serialization;

namespace Unnamed12 {
    public partial class Form1 : Form {
        Settings settings = new Settings();
        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) {
            if (File.Exists("config.xml")) {
                loadConfig();
                setConfigValues();
            }
        }

        private void loadConfig() {
            XmlSerializer ser = new XmlSerializer(typeof(Settings));
            using (FileStream fs = File.OpenRead("config.xml")) {
                settings = (Settings)ser.Deserialize(fs);
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
            writeConfig();
        }

        private void writeConfig() {
            using (StreamWriter sw = new StreamWriter("config.xml")) {
                settings.NameTextBoxText = nameTextBox.Text;
                settings.SurrnameTextBoxText = surrnameTextBox.Text;
                settings.AgeNumericValue = (int)ageNumeric.Value;
                XmlSerializer ser = new XmlSerializer(typeof(Settings));
                ser.Serialize(sw, settings);
            }
        }

        private void setConfigValues() {
            nameTextBox.Text = settings.NameTextBoxText;
            surrnameTextBox.Text = settings.SurrnameTextBoxText;
            ageNumeric.Value = settings.AgeNumericValue;
        }
    }

    public class Settings {
        public string NameTextBoxText { get; set; }
        public string SurrnameTextBoxText { get; set; }
        public int AgeNumericValue { get; set; }
    }
}

Stworzyłem tu klasę Settings w której przechowuję dane pól formularza. Przy zamykaniu programu zapisuję dane z kontrolek do publicznych właściwości mojej klasy. Przy otwieraniu programu najpierw wczytuję dane z pliku do mojego obiektu settings, a następnie aktualizuję właściwości kontrolek. Do zapisywania danych do pliku użyłem serializacji XML. Jest to dość powszechne i co najważniejsze proste rozwiązanie. Tak wygląda zawartość pliku po zapisaniu:

669a045619.png

  • Super 1
Odnośnik do komentarza

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Polecana zawartość

    • Poradnik podatkowy - jak rozliczać się z pieniędzy zarobionych przez Internet bez DG?
      Zarabianie w Internecie wiąże się z koniecznością płacenia podatków - a rozliczanie się z urzędem skarbowym nie jest jednoznaczne i proste. Prawo podatkowe w Polsce jest nieujednolicone - co oznacza, że każdy urząd skarbowy może mieć inne interpretacje. Sprawdź jak się za to zabrać!
        • Lubię to!
        • Super
      • 14 odpowiedzi
    • JDG - Jak zarejestrować, rozliczać i prowadzić działalność gospodarczą w Polsce
      Jednoosobowa działalność gospodarcza (JDG) to najprostsza forma prowadzenia działalności gospodarczej w Polsce. Jest to działalność prowadzona przez jedną osobę fizyczną na własne nazwisko i na własne ryzyko. Jednak mimo, że nazywa się jednoosobowa - daje jednak możliwość zatrudniania pracowników. Takich firm jest zarejestrowanych w Polsce zdecydowanie najwięcej. Sprawdź jak zarejestrować, rozliczać i prowadzić własną JDG!
        • Super
      • 3 odpowiedzi
    • Inwestowanie w obligacje detaliczne skarbu państwa - od podstaw!
      Sprawdź jak inwestować w obligacje skarbowe - krok po kroku! Detaliczne obligacje skarbowe to rodzaj obligacji emitowanych przez Państwo, które są oferowane indywidualnym inwestorom, takim jak osoby fizyczne, a nie instytucjom finansowym.

      Są to instrumenty dłużne, nienotowane na żadnym rynku, co oznacza że kupując taką obligację, w praktyce pożyczasz pieniądze państwu na określony czas, a w zamian otrzymujesz odsetki. Można więc powiedzieć że obligacje są indywidualną pożyczką na określony % dla Skarbu Państwa. Państwo odda Ci więcej niż od Ciebie pożyczyło.
        • Super
      • 7 odpowiedzi
    • Jak pozyskiwać i zarabiać na poleconych dzięki make-cash.pl
      W tym poradniku przedstawiam możliwości dostępne dla każdego użytkownika. Dowiesz się jak efektywnie wykorzystać forum do zbierania poleconych i budowania dodatkowych zysków.

      Make-cash.pl to miejsce, gdzie ludzie dzielą się swoimi doświadczeniami, poszukują porad i rekomendacji, a także nawiązują wartościowe kontakty. Codziennie odwiedza nas minimum 2000 unikalnych osób, które są zainteresowane zarabianiem przez Internet - a to ogromny potencjał, z którego może korzystać nie tylko administracja - ale każdy użytkownik forum !
        • Super
      • 2 odpowiedzi
    • Jak pisać treści na stronę internetową z wykorzystaniem AI
      Tworzenie treści od podstaw może być procesem czasochłonnym. Istnieje wiele mniejszych kroków, o których należy pomyśleć w drodze do stworzenia atrakcyjnych treści, takich jak badanie rynku, SEO i redagowanie tekstu, a to tylko początek. Jednak nie musisz zaczynać od zera, gdy istnieją narzędzia AI, które mogą pomóc w tworzeniu wysokiej jakości treści. 
        • Dzięki!
        • Super
      • 13 odpowiedzi
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Ta strona korzysta z ciasteczek, aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie z witryny oznacza zgodę na ich wykorzystanie. Polityka prywatności .