Gerhard535 Geschrieben 15. Februar 2011 Teilen Geschrieben 15. Februar 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 24. Februar 2011 Teilen Geschrieben 24. Februar 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.