Ich habe folgendes Problem:
ich nutze ein DataGridView mit 5 Spalten und einer variierenden Anzahl von Zeilen. Mit einem Klick auf den Coloumn Header werden die Zeilen in der entsprechenden Spalte aufsteigend sortiert. Schön und gut.
Wie kann ich diese Eigenschaft nun abspeichern, nach welcher Spalte die Tabelle sortiert wurde, um beim nächsten Programmstart den gleichen Zustand zu bekommen?
Indem du das Klick-Event abfängst, deine Einstellung speicherst, und beim Neustart wieder ausliest und setzt.
Das ist schon einmal eine gute Idee, danke.
Nun stellt sich mir aber noch die Frage, wie ich diese Sortierung abspeichere. Habe dazu gegoogelt und bin nur darauf gestoßen, wie man die Sortierreihenfolge von Spalten selber speichert.
using System.Collections.Specialized;
using System.Windows.Forms;
namespace DragDrop {
public partial class Form2 : Form {
public Form2() {
InitializeComponent();
StringCollection GridRanks = Properties.Settings.Default.GridRanks;
for (int i = 0; i < GridRanks.Count; i++) {
int n = int.Parse(GridRanks[i]);
dataGridView1.Columns[i].DisplayIndex = n;
}
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e) {
StringCollection GridRanks = Properties.Settings.Default.GridRanks;
GridRanks.Clear();
foreach (DataGridViewColumn c in this.dataGridView1.Columns) {
GridRanks.Add(c.DisplayIndex.ToString());
}
}
}
}
Und im Programm .cs:
C#-Code:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace DragDrop {
static class Program {
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form2());
Properties.Settings.Default.Save();
}
}
}
Ich wollte dann das GridRanks in GridRows abändern, aber habe das Problem, dass er Properties.Settings.Default.GridRanks; nicht findet, also schon das Properties nicht. Fehlt mir da irgend ein namespace, bzw.wo finde ich diese Properties bei mir?
Du mußt natürlich dieses Property in den Settings selber anlegen (als UserSetting, damit dieser Wert auch geändert werden kann): entweder über die Projekteigenschaften -> Tab "Settings" oder aber im Ordner "Properties" auf Settings klicken.