Autor
|
Thema: DGV.CurrentRow speichern und wieder laden (1949 mal gelesen)
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2021/2022 CAD+T HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 13. Feb. 2014 09:47 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Wie kann ich die zuletzt ausgewählte Zeile meinen DGV beim erneuten Programmaufruf übernehmen. Für TextBox - Inhalte mache ich es über "Einstellung" - Settings. Code:
'...speichern My.Settings.TB_STH = Me.TB_STH.Text '...
Code:
'...laden Me.TB_STH.Text = My.Settings.TB_STH '...
Probiert hatte ich es schon mal so
Code:
'...speichern My.Settings.DGV_CurrentRows_Save = DataViewRowState.CurrentRows '...
Code:
'...laden Me.DGV1.CurrentRow = My.Settings.DGV_CurrentRows_Save '...
Geht das überhaupt, oder gibt es da eine andere Möglichkeit? Vielen Dank im Voraus. ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 13. Feb. 2014 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für Dirk.B
Hallo Dirk, also erstmal, DGV musste ich erstmal googlen. Bitte keine Abkürzungen verwenden, denn jeder verwendet andere. Dann habe ich keine Ahnung, was du da machst. Woher soll irgendwer wissen, was bei dir TB_STH ist. Klar kann ich aus TB Textbox schlussfolgern, aber es ist nicht jeder Programmierer ein Entschlüsselungskünstler. Wenn ich deine Frage richtig verstehe, möchtest du das ausgewählte Element speichern, wenn das Programm geschlossen wird und beim nächsten Aufruf wieder anzeigen. Hierfür gibt es einige Ansätze... 1.) Settings in der Registry speichern Hierfür musst du für dein Programm einen Registryschlüssel generieren, der nicht mit anderen in Konflikt gerät und darin die benötigten Informationen speichern. 2.) Du legst dir eigene Settings an Hier würde ich unter "AppData" des Anwenders einen entsprechenden ordner anlegen und eben entsprechende Dateien generieren 3.) Du hast neben dem Programm eine Konfigdatei Hier kannst du nach belieben eine ini, xml oder einfach nur textdatei anlegen, die du entsprechend mit dem Programmstart auswertest. ------------------ MFG Rick Schulz
Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
[Diese Nachricht wurde von RSchulz am 13. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002 Windows 10 64 Office 2013 Eplan P8 2.7 HF2 VS 2015 Medusa 2000i2
|
erstellt am: 13. Feb. 2014 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für Dirk.B
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 13. Feb. 2014 16:52 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! @Rick Sorry dafür, dass ich meine Abkürzungenbzw. Benennungen nicht ausführlicher beschrieben habe. DGV = DataGridView TB = TextBox so hätte ich es machen können. @Roland Das mit dem My.Settings und dem System.Data.DataTable hatte ich mir angesehen muß aber gestehen, dass ich damit nicht zurecht gekommen bin. Ich habe nun noch mal folgendes ausprobiert. Klick ich auf meinen OK_Button wird der CurrentRow.Index an My.Settings übergeben.
Code:
'... Me.Hide() '... My.Settings.DGV_CurrentRows_Save = DGV1.CurrentRow.Index.ToString'...
Wenn ich nun das Programm wieder lade wird der Index übergeben und die zuletzt angeklickte Zeile ist markiert bzw. farblich unterlegt. Code:
Private Sub LSystem_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load '... DGV1.Rows(My.Settings.DGV_CurrentRows_Save).Selected = True '...
Jetzt hab ich zwar die Zeile z.B. 3 markiert, aber nun fehlt mir eine Art KlickEvent auf diese Zeile, so das die Werte aus den Cells an die TextBoxen übergeben werden. Gibt es dazu vielleicht etwas KlickEvent, oder so? Mit folgende Zeile hol ich mir die markierte Zeile in den sichbaren Scrollbereich. Code:
DGV1.FirstDisplayedScrollingRowIndex = My.Settings.DGV_CurrentRows_Save
Vielen Dank im Voraus.
------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2657 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** Dell Precision 7540 mobile Workstation, 64GB, Quadro RTX 3000; SWX2020 SP5; SAP/PLM+ECTR; DriveWorks Pro; Programmierung: VBA, aktuell Visual Studio 2017/VB.Net
|
erstellt am: 25. Feb. 2014 14:23 <-- editieren / zitieren --> Unities abgeben: Nur für Dirk.B
Ich hoffe, ich habe dich richtig verstanden Du hast eine Form mit einer Textbox und einer DataGridView, die du miteinander verbandeln willst. Außerdem soll die angeklickte Zeile der DGv in die Textbox übertragen werden. Beim Beenden (oder sonst wann) soll die ausgewählte Zeilennummer festgehalten werden und dann beim Neustart (oder sonst wann) automatisch wieder ausgewählt werden- und natürlich der Text in die Textbox übertragen werden. Nach deiner Beschreibung gehe ich mal davon aus, dass die DGV nur eine Spalte hat. Eigentlich ganz einfach Ich habe eine Form mit der Textbox TB_STH, der DataGridView DGV1. Dazu noch 2 Buttons, die das Beenden und neustarten simulieren sollen. Außerdem gibt es in den Settings einen Wert DGV1_Row als integer, dort wird die gewählte Zeile zwischengespeichert. Hier der Code: (zu Beginn wird die DGV mit irgendwelchen Werten gefüllt)
Code: Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim n As Integer = 0 For n = 1 To 5 DGV1.Rows.Add("Zeile " & n.ToString) Next End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim n As Integer n = DGV1.CurrentCellAddress.Y My.Settings.DGV1_Row = DGV1.CurrentCellAddress.Y My.Settings.Save() End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click Dim n As Integer = My.Settings.DGV1_Row DGV1.CurrentCell = DGV1.Rows(n).Cells(0) TB_STH.Text = DGV1.CurrentCell.Value End Sub Private Sub DGV1_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV1.CellClick TB_STH.Text = DGV1.CurrentCell.Value End Sub End Class
Jedes Mal, wenn du die DGV anklickst, wird der aktuelle Wert in die Textbox geschrieben. Mit dem Button1 wird die Zeilennummer in den Settings gespeichert, diese dann gesichert. Umgekehrt wird mit dem Button2 der Wert aus den Settings gelesen und die entsprechende Zeile der DGV ausgewählt sowie der Inhalt der Zeile/Zelle in die Textbox geschrieben. ------------------ Klaus www.al-ko.com | mein Gästebuch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|