Avatar billede iostream Nybegynder
29. september 2005 - 21:32 Der er 31 kommentarer og
1 løsning

Simpelt spørgsmål til TextBox

Hej alle..

Jeg har en double en textbox og en knap.

Her er lidt kode:

double saldo = 0;

private void button1_Click(object sender, System.EventArgs e)
        {

            saldo = saldo + textBox2.Text;
        }

Dette virker selvfølgelig ikke da den ikke kan addere en string til en double.
Avatar billede iostream Nybegynder
29. september 2005 - 21:33 #1
nogle der ved hvordan man gør ?
Avatar billede kalp Novice
29. september 2005 - 21:35 #2
Du skal konvertere den med klassen Integer
Avatar billede arne_v Ekspert
29. september 2005 - 21:36 #3
saldo = saldo + double.Parse(textBox2.Text);
Avatar billede arne_v Ekspert
29. september 2005 - 21:37 #4
vigtigt: double.Parse bruger sprog opsætning d.v.s. at sprog dansk så vil den bruge
komma og ikke punktum
Avatar billede kalp Novice
29. september 2005 - 21:37 #5
saldo = saldo = Convert.ToDouble(textBox2.Text);
Avatar billede kalp Novice
29. september 2005 - 21:37 #6
saldo = Convert.ToDouble(textBox2.Text);

ved ikke om det virker
Avatar billede kalp Novice
29. september 2005 - 21:38 #7
Jeg troede desuden jeg var i Java katagorien.. derfor jeg snakker om Integer... så kommer blot med et bud fordi jeg nu alligevel er havnet her;)
Avatar billede kalp Novice
29. september 2005 - 21:38 #8
saldo = saldo + Convert.ToDouble(textBox2.Text);

sorry spam!!
Avatar billede iostream Nybegynder
29. september 2005 - 21:43 #9
mange tak arne ;)

lige inden du lægger et svar...(da der er så mange points)

så vil jeg gerne have indsat en listbox hvor hver gang man indsætter penge (knap) kommer beløbet (addsaldo) tiden og dato til at stå i listboxen. og det samme med (subsaldo) bare med minus foran !
Avatar billede arne_v Ekspert
29. september 2005 - 21:59 #10
svar

---

så skal du vel:
  fjerne gammel saldo
  tilføje nyt beløb
  tilføje ny saldo
til din listbox
Avatar billede iostream Nybegynder
29. september 2005 - 22:06 #11
ok men det var mere koden at gøre det med jeg var ude efter noget i stil med:

TextWriter tr = new StreamWriter("saldo.txt");

tr.WriteLine(listBox1.Items) ???

Og så læse fra fil

TextReader tr = new StreamReader("saldo.txt");

listBox.Items = tr.ReadLine() ???
Avatar billede iostream Nybegynder
29. september 2005 - 22:08 #12
jeg har fundet ud af at "logge" transaktionerne i en listbox men nu skal de bare gemmes i en txt fil og hentes til listboxen igen (når programmet starter)
Avatar billede iostream Nybegynder
29. september 2005 - 22:08 #13
håber du vil svare selvom jeg har accepteret dit svar !
Avatar billede arne_v Ekspert
29. september 2005 - 22:09 #14
hvis du læser N linier fra en fil ind i et array med N elementer kan du vel
assigne det array til listboxens datasource property ?
Avatar billede iostream Nybegynder
29. september 2005 - 22:11 #15
??? jeg er ikke så rutineret en C# programmør så lidt kode ville ikke gøre noget ;)
Avatar billede arne_v Ekspert
29. september 2005 - 22:12 #16
giv mig en 20 minutter
Avatar billede iostream Nybegynder
29. september 2005 - 22:13 #17
ok PFtak ;)
Avatar billede iostream Nybegynder
29. september 2005 - 22:14 #18
lidt kode hvis du kan bruge det !


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;

namespace C5_Very_Light
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Button button2;
        private System.Windows.Forms.TextBox textBox2;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;
        double saldo = 0;
        private System.Windows.Forms.Label label2;

        double addsaldo = 0;
        private System.Windows.Forms.ListBox listBox1;
        private System.Windows.Forms.Label label3;

        double subsaldo = 0;

        string stringsaldo;

        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();
           

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.button1 = new System.Windows.Forms.Button();
            this.button2 = new System.Windows.Forms.Button();
            this.textBox2 = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.listBox1 = new System.Windows.Forms.ListBox();
            this.label3 = new System.Windows.Forms.Label();
            this.SuspendLayout();
            //
            // textBox1
            //
            this.textBox1.Location = new System.Drawing.Point(504, 384);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(184, 20);
            this.textBox1.TabIndex = 0;
            this.textBox1.Text = "- kr.";
            //
            // label1
            //
            this.label1.Location = new System.Drawing.Point(504, 368);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(160, 16);
            this.label1.TabIndex = 1;
            this.label1.Text = "Saldo";
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(8, 56);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(144, 24);
            this.button1.TabIndex = 2;
            this.button1.Text = "Indsæt penge";
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // button2
            //
            this.button2.Location = new System.Drawing.Point(8, 88);
            this.button2.Name = "button2";
            this.button2.Size = new System.Drawing.Size(144, 24);
            this.button2.TabIndex = 3;
            this.button2.Text = "Hæv penge";
            this.button2.Click += new System.EventHandler(this.button2_Click);
            //
            // textBox2
            //
            this.textBox2.Location = new System.Drawing.Point(8, 24);
            this.textBox2.Name = "textBox2";
            this.textBox2.Size = new System.Drawing.Size(144, 20);
            this.textBox2.TabIndex = 4;
            this.textBox2.Text = "";
            //
            // label2
            //
            this.label2.Location = new System.Drawing.Point(8, 8);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(88, 16);
            this.label2.TabIndex = 5;
            this.label2.Text = "Beløb";
            //
            // listBox1
            //
            this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.listBox1.Location = new System.Drawing.Point(160, 24);
            this.listBox1.Name = "listBox1";
            this.listBox1.Size = new System.Drawing.Size(528, 342);
            this.listBox1.TabIndex = 6;
            //
            // label3
            //
            this.label3.Location = new System.Drawing.Point(160, 8);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(144, 16);
            this.label3.TabIndex = 7;
            this.label3.Text = "Konto";
            //
            // Form1
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(696, 414);
            this.Controls.Add(this.label3);
            this.Controls.Add(this.listBox1);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.textBox2);
            this.Controls.Add(this.button2);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.textBox1);
            this.Name = "Form1";
            this.Text = "C5 Very Light";
            this.Closing += new System.ComponentModel.CancelEventHandler(this.Form1_Closing);
            this.Load += new System.EventHandler(this.Form1_Load);
            this.ResumeLayout(false);

        }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }

        private void Form1_Load(object sender, System.EventArgs e)
        {
            try
            {
                TextReader tr = new StreamReader("saldo.dat");

                stringsaldo = tr.ReadLine();

                saldo = Double.Parse( stringsaldo );

                tr.Close();
            }
            catch
            {
               
            }

            textBox1.Text = saldo + " kr.";
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            addsaldo = Double.Parse( textBox2.Text );

            saldo = saldo + addsaldo;

            textBox1.Text = saldo + " kr.";

            listBox1.Items.Add("+ " + addsaldo + " kr.");
        }

        private void button2_Click(object sender, System.EventArgs e)
        {
            subsaldo = Double.Parse( textBox2.Text );

            saldo = saldo - subsaldo;

            textBox1.Text = saldo + " kr.";

            listBox1.Items.Add("- " + subsaldo + " kr.");
        }

        private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
           
            TextWriter tw = new StreamWriter("saldo.dat");

            tw.WriteLine(saldo);

            tw.Close();
       
        }
    }
}
Avatar billede arne_v Ekspert
29. september 2005 - 22:16 #19
super simpelt eksempel (med det relevant kode markeret):

using System;
using System.Collections;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

namespace DefaultNamespace
{
    public class MainForm : Form
    {
        private ListBox listBox1;
        public MainForm()
        {
            InitializeComponent();
        }
        [STAThread]
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
        private void InitializeComponent() {
            listBox1 = new ListBox();
            SuspendLayout();
            listBox1.Location = new Point(50, 50);
            listBox1.Size = new Size(150, 300);
            // start
            ArrayList al = new ArrayList();
            StreamReader sr = new StreamReader(@"C:\data.txt");
            string line;
            while((line = sr.ReadLine()) != null)
            {
                al.Add(line);
            }
            listBox1.DataSource = al;
            // slut
            ClientSize = new Size(250, 400);
            Controls.Add(listBox1);
            Text = "Listbox test";
            ResumeLayout(false);
        }
    }
}
Avatar billede iostream Nybegynder
29. september 2005 - 22:28 #20
hvad så når man skal læse fra filen og insdætte det i listboxen når programmet starter igen ?
Avatar billede iostream Nybegynder
29. september 2005 - 22:30 #21
nej jeg mener skrive !
Avatar billede arne_v Ekspert
29. september 2005 - 22:31 #22
mit eksempel viser netop hvordan man læser fra fil til ListBox
Avatar billede arne_v Ekspert
29. september 2005 - 22:31 #23
hvad mener du ?
Avatar billede iostream Nybegynder
29. september 2005 - 22:35 #24
jeg mener skrive !!
skrive til filen data.txt (alt indholdet i listboxen)
Avatar billede iostream Nybegynder
29. september 2005 - 22:38 #25
fx inde i form1_closing(...)
få den til at skrive alt indholdet i listboxen til data.txt på samme en sådan måde at jeg kan bruge dit "læse fra fil til listbox" eksempel
Avatar billede arne_v Ekspert
29. september 2005 - 22:38 #26
du åbner en StreamWriter

så itererer du over din ListBox Items property og udskriver hvert item
Avatar billede iostream Nybegynder
29. september 2005 - 22:38 #27
..til at hente data igen ! når man starter programmet
Avatar billede iostream Nybegynder
29. september 2005 - 22:40 #28
en lille kode måske :D
Avatar billede arne_v Ekspert
29. september 2005 - 22:48 #29
10 minutter
Avatar billede iostream Nybegynder
29. september 2005 - 22:49 #30
ok
Avatar billede arne_v Ekspert
29. september 2005 - 22:53 #31
jeg måtte lige lave lidt om i read også men her er den:

using System;
using System.Collections;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

namespace DefaultNamespace
{
    public class MainForm : Form
    {
        private ListBox listBox1;
        private Button button1;
        private Button button2;
        public MainForm()
        {
            InitializeComponent();
        }
        [STAThread]
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
        private void InitializeComponent() {
            listBox1 = new ListBox();
            button1 = new Button();
            button2 = new Button();
            SuspendLayout();
            listBox1.Location = new Point(50, 50);
            listBox1.Size = new Size(150, 300);
            StreamReader sr = new StreamReader(@"C:\data.txt");
            string line;
            while((line = sr.ReadLine()) != null)
            {
                listBox1.Items.Add(line);
            }
            sr.Close();
            button1.Location = new Point(50, 450);
            button1.Size = new Size(50, 25);
            button1.Text = "Tilføj";
            button1.Click += new EventHandler(Button1Click);
            button2.Location = new Point(150, 450);
            button2.Size = new Size(50, 25);
            button2.Text = "Gem";
            button2.Click += new EventHandler(Button2Click);
            ClientSize = new Size(250, 500);
            Controls.Add(listBox1);
            Controls.Add(button1);
            Controls.Add(button2);
            Text = "Listbox test";
            ResumeLayout(false);
        }
        private void Button1Click(object sender, EventArgs e)
        {
            listBox1.Items.Add("Dette er en tilføjet linie");
        }
        private void Button2Click(object sender, EventArgs e)
        {
            StreamWriter sw = new StreamWriter(@"C:\data.txt");
            foreach(object item in listBox1.Items)
            {
                sw.WriteLine(item);
            }
            sw.Close();
        }
    }
}
Avatar billede iostream Nybegynder
29. september 2005 - 23:13 #32
mange tak arne ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester