Zum Inhalt springen

probleme mit 10 textboxen 2check und datagridview


Gerhard535

Empfohlene Beiträge

hallo,

ich habe ein problem, ich fange dan mal gleich an:

ich habe 10 textboxen und 2 checkboxen. und 5 buttons (Add, Edit, Delete, Load, Save), eine datagridview.

ich moechte nun einige sachen in die 10 textboxen eingeben und evtl einen hacken in die checkboxen setzten. wen ich nun auf add klicke sollen alle textboxen in die datagridview eingetragen werden und die checkboxen sollen auch in die datagrifview uebernommen werden. (in eine der textboxen soll auch nur ein teil eines links kommen. zB "net/145296-probleme-10-textboxen-2check-datagridview.html#post1296997")

in der datagridview sollen dan in einer row die textboxen ausgegeben werden, die hacken der checkboxen in DataGridViewCheckBoxColumn uebernommen werden und in die spalte wo der teil des links rein kommt (DataGridViewLinkColumn) woll auch eingetragen werden.

wen ich nun auf den link klicke soll der browser geoeffnet werden und auf die seite kommen. (in die textboxe wurde "net/145296-probleme-10-textboxen-2check-datagridview.html#post1296997" eingegeben. vor diesem "zusatz" soll noch ein permanenter link dazu kommen. zB "http://forum.fachinformatiker.de/".

hat man eine row markiert und klickt auf edit soll die row geloescht werden und alles soll in die textboxen und checkboxen geschrieben werden.

aber klickt man nur eine column an und klickt edit soll die row bestehen bleiben und alles soll in die checkboxen und textboxen ausgegeben werden.

klickt man eine row an und delete dan wird diese geloescht.

beim klicken auf speichern soll alles in der datagridview gespeichert werden. zb als .xml

beim laden soll diese xml wieder geoffnet werden und bearbeitet werden koennen.

hier mal das was ich bisher gemacht habe. komme aber nicht weiter bei:

- link anklicken so das browser geoeffnet wird. permanenter link erstellen wo der "zusatz" dazu addiert wird

- richtiges laden der .xml (es wird immer eine zweiter "tabelle" neben der leeren geoeffnet [rechts daneben])

- nach dem laden, wen eine weitere row dazu kommt klappt nicht es entsteht ein fehler.

bin echt ein neuling in sachen c# und habe teilweise einiges vergessen was mit progammieren zu tun hat.

waere also cool wen mir wer helfen koennte das ganze hin zu bekommen.

hier nun der bisherige quelltext:



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Xml.XPath;

using System.Xml;

using System.IO;



namespace Packetzustellung

{




    public partial class Form1 : Form

    {


        public Form1()

        {

            InitializeComponent();


        }


        private void button3_Click(object sender, EventArgs e)

        {



            dataGridView1.Rows.Add(textBox1.Text, textBox10.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox7.Text, textBox5.Text, textBox6.Text, textBox9.Text, textBox12.Text, textBox8.Text, textBox11.Text);


            textBox1.Text = "";

            textBox10.Text = "";

            textBox2.Text = "";

            textBox3.Text = "";

            textBox4.Text = "";

            textBox7.Text = "";

            textBox5.Text = "";

            textBox6.Text = "";

            textBox9.Text = "";

            textBox12.Text = "";

            textBox8.Text = "";

            textBox11.Text = "";


        }


      private void button5_Click(object sender, EventArgs e)

        {

            if (dataGridView1.SelectedRows.Count == dataGridView1.Rows.Count)

            {

                dataGridView1.Rows.Clear();

            }

            foreach (DataGridViewRow row in dataGridView1.SelectedRows)

            {

                dataGridView1.Rows.Remove(row);

            }



        }


        private void button4_Click(object sender, EventArgs e)

        {


            textBox1.Text = "";

            textBox10.Text = "";

            textBox2.Text = "";

            textBox3.Text = "";

            textBox4.Text = "";

            textBox7.Text = "";

            textBox5.Text = "";

            textBox6.Text = "";

            textBox9.Text = "";

            textBox12.Text = "";

            textBox8.Text = "";

            textBox11.Text = "";



            textBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();

            textBox10.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();

            textBox2.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();

            textBox3.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();

            textBox4.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();

            textBox7.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();

            textBox5.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString();

            textBox6.Text = dataGridView1.CurrentRow.Cells[7].Value.ToString();

            textBox9.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString();

            textBox12.Text = dataGridView1.CurrentRow.Cells[9].Value.ToString();

            textBox8.Text = dataGridView1.CurrentRow.Cells[10].Value.ToString();

            textBox11.Text = dataGridView1.CurrentRow.Cells[11].Value.ToString();



            if (dataGridView1.SelectedRows.Count == dataGridView1.Rows.Count)

            {

                dataGridView1.Rows.Clear();

            }

            foreach (DataGridViewRow row in dataGridView1.SelectedRows)

            {

                dataGridView1.Rows.Remove(row);

            }


        }




        private void button6_Click(object sender, EventArgs e)

        {



            DataTable dt = new DataTable("itemstable");


            for (int i = 0; i < dataGridView1.ColumnCount; i++)

            {

                dt.Columns.Add(dataGridView1.Columns[i].Name, typeof(System.String));

            }

            DataRow myrow; int icols = dataGridView1.Columns.Count;

            foreach (DataGridViewRow drow in this.dataGridView1.Rows)

            {

                myrow = dt.NewRow(); for (int i = 0; i <= icols - 1; i++) { myrow[i] = drow.Cells[i].Value; } dt.Rows.Add(myrow);

            }

            dt.WriteXml("Packete.xml"); 

        }



        private void button1_Click(object sender, EventArgs e)

        {



        }


        private void button2_Click(object sender, EventArgs e)

        {



        }


        private void button7_Click(object sender, EventArgs e)

        {


            XmlDataDocument xmlDatadoc = new XmlDataDocument();

            xmlDatadoc.DataSet.ReadXml(Application.StartupPath + "\\Packete.xml");


            DataSet ds = new DataSet();

            ds = xmlDatadoc.DataSet;


            dataGridView1.DataSource = ds.Tables[0];

            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

            dataGridView1.AutoResizeColumns();

            dataGridView1.Refresh();          



        }



        private void Form1_Load(object sender, EventArgs e)

        {


        }


        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

        {


        }



    }

}


danke schon mal

mfg

krx

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo

So könnte man das Lösen:

1. Lege ein Dataset an (Hinzufügen -> Neues Element -> Dataset)

2. Lege die spalten an die du benötigst (DataType beachten)

3. Lege ein DataGridView an

4. DataGridView an Dataset binden

5. Den Spalten kannst du dann verschiedenen Typen zuweisen (auch Checkbox)

Wenn du nun einen neuen Datensatz hinzufügst machst du das nicht direkt an der DataGridView sondern am Dataset.

Dieses DataSet als XML zu speichern ist ein einzeler, geht nämlich genau wie das einlesen in ein Dataset. (writeXML)

Tip: Schreibe erst einmal ein Dataset als XML und dann liest es ein, denn der Schreibbefehl erzeugt das XML genau so wie er es dann später beim Einlesen benötigt.

Viel Erfolg

Gruß Hans-Jörg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...