Datagridview: Wert in bestimmter Zelle ändern
-
Sonntag, 27. Mai 2012 19:27
Hallo zusammen,
ich hab mal wieder ein kleines Problem mit meiner Anwendung.
Und zwar benutze ich zum Anzeigen einiger Dateinamen ein datagridview, gleichzeitig soll dieses datagridview auch als Downloadanzeige dienen. Dazu hab ich in einer Spalte des datagridviews für jeden Dateinamen eine progressbar eingebunden.
Per checkbox (als Spalte im datagridview) können dann die Dateien markiert werden, die heruntergeladen werden sollen. Die Dateinamen & Urls werden dann in einer Queue "zwischengelagert".
Nun aber zum eigentlichen Problem:
Ich weiß jetzt nämlich nicht genau, wie ich nun genau die progressbar anspreche, die sich auch in der selben Zeile befindet, wie die ausgewählte Datei. Bei einem einzelnen Download mag das noch recht einfach sein, bei mehreren parallelen Downloads komme ich jedoch nicht so recht weiter.- Typ geändert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Freitag, 29. Juni 2012 15:54 Keine Rückmeldung des Fragenstellender
- Typ geändert Fabzen Sonntag, 1. Juli 2012 15:19
Alle Antworten
-
Freitag, 1. Juni 2012 12:11
Hallo Fabzen,
unter [1] finden Sie ein Beispiel zur dem Progressbar in der DataGridView. Weitere Beispiele mit Quellcode finden Sie unter [2] und [3].
[1] http://stackoverflow.com/questions/4646920/populating-a-datagridview-with-text-and-progressbars
[2] http://www.codeproject.com/Articles/117021/How-to-Create-ProgressBar-Column-in-DataGridView
[3] http://arsalantamiz.blogspot.de/2008/04/datagridview-custom-percentage-column.htmlIch hoffe Ihnen geholfen zu haben!
Viele Grüße,
Anna Koch
MSDN Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline:http://www.msdn-online.de/Hotline

Es gelten für die MSDN Hotline und dieses Posting dieseNutzungsbedingungen, Hinweise zuMarkenzeichen sowie die allgemein gültigenInformationen zur Datensicherheit sowie die gesondertenNutzungsbedingungen für die MSDN Hotline.- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Freitag, 8. Juni 2012 11:06
- Tag als Antwort aufgehoben Fabzen Montag, 11. Juni 2012 00:36
-
Freitag, 8. Juni 2012 11:06Besitzer
Hallo Fabzen,
Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT

Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Montag, 11. Juni 2012 00:36
Moin moin,
danke für die Antworten, allerdings liegt mein Problem nicht speziell darin, wie ich progressbars in mein datagridview einbinden kann, denn so weit bin ich bereits (nach diesem Beispiel) :).
Mir geht es eher darum, wie ich diese progressbars nun individuell mit einem einzelnen DownloadProgressChangedEvent ansteuern kann, wenn ich mehrere Dateien runterladen möchte.
Ich hab gelesen, dass man dazu ein usertoken verwenden kann, allerdings weiß ich nicht wie ich dieses dann in meinem DownloadProgressChangedEvent anwenden soll/muss.
Mein Code zum erstellen der webclients sieht derzeit so aus:
private void download_button_Click(object sender, EventArgs e) { start = DateTime.Now; download_button.Enabled = false; iRows = dataGridView1.Rows.Count; iChecked = 0; CheckedCount = 0; //Ermitteln, wie viele checkboxen angehakt sind for (i = 0; i < iRows; i++) { iChecked = Convert.ToInt32(dataGridView1.Rows[i].Cells["checkboxcol"].FormattedValue); CheckedCount += iChecked; richTextBox3.Text = CheckedCount.ToString(); } for (z = 0; z < CheckedCount; z++) { _MultipleWebClients = new WebClient(); _MultipleWebClients.DownloadFileCompleted += new AsyncCompletedEventHandler(_DownloadFileCompleted); _MultipleWebClients.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(_DownloadProgressChanged); _MultipleWebClients.DownloadFileAsync(new Uri(_downloadUrlList[z].ToString()), @"F:\test" + z + ".mp4", z); } }Um mein Vorhaben etwas zu verdeutlichen:
Dort wo die checkboxen angehakt sind, soll logischerweise der download-Fortschritt individuell angezeigt werden. Im Moment ist es leider noch so, dass zwar die richtigen Zeilen/progressbars aktualisiert werden, sie jedoch alle den gleichen Fortschritt anzeigen (d.H. in jeder progressbar wird der Fortschritt von allen downloads gleichzeitig angezeigt, weshalb der Wert ständig wechselt).
- Bearbeitet Fabzen Montag, 11. Juni 2012 00:37
-
Donnerstag, 28. Juni 2012 09:48Besitzer
Ich hab gelesen, dass man dazu ein usertoken verwenden kann, allerdings weiß ich nicht wie ich dieses dann in meinem DownloadProgressChangedEvent anwenden soll/muss.
Hallo Fabzen,
Schau Dir mal die folgenden Links an. Vielleicht können sie Dir weiter helfen.
How to use Ping.SendAsync working with datagridview? (DataGridViewRow row = e.UserState as DataGridViewRow;)
.NET WebClient tag property, or keeping track of downloads?
Diskussion in Zusammenhang: How to update progressbars individually (simultaneous downloads)
Grüße,
Robert
Robert Breitenhofer, MICROSOFT

Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.- Als Antwort markiert Fabzen Sonntag, 1. Juli 2012 15:20
-
Freitag, 29. Juni 2012 15:54Besitzer****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT

Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Sonntag, 1. Juli 2012 15:05
Das Problem hat sich mittlerweile erledigt, der zweite Link wäre aber genau das gewesen wonach ich gesucht habe, deswegen trotzdem danke :)Hallo Fabzen,
Schau Dir mal die folgenden Links an. Vielleicht können sie Dir weiter helfen.
How to use Ping.SendAsync working with datagridview? (DataGridViewRow row = e.UserState as DataGridViewRow;)
.NET WebClient tag property, or keeping track of downloads?
Diskussion in Zusammenhang: How to update progressbars individually (simultaneous downloads)
Grüße,
Robert

