Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mo 16.05.16 22:29 
hallo,
ich habe ein wunderschönes DatagridView Diagramm. Ich klicke in eine Zeile und es wird davon erste Pos. geladen und weiterverarbeitet. Das klappt ganz gut bis jetzt.
Wenn ich auf die Kopfleiste klicke, dann kommt es zum Abstutz.

ausblenden C#-Quelltext
1:
2:
3:
4:
Point p = dataGridView2.PointToClient(Cursor.Position);
DataGridView.HitTestInfo hit = dataGridView2.HitTest(p.X, p.Y);

textBox50.Text = dataGridView2.Rows[hit.RowIndex].Cells[0].Value.ToString();

Was muss ich ändern, dass die Kopfleiste sowie das sorieren nach Rubriken bzw der Code funkt?

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 16.05.16 22:32 
HitTestInfo hat eine Type Property die du abfragen solltest um rauszufinden was du den genau getroffen hast.

Für diesen Beitrag haben gedankt: tomycat
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 17.05.16 09:22 
Die Eigenschaft hit.RowIndex wird dann -1 sein.

PS: Abstürze gibt es unter .NET (eigentlich) nicht, d.h. es wird eine Exception geworfen (und diese solltest du untersuchen und dann hier posten).

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.05.16 21:33 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
Point p = dataGridView2.PointToClient(Cursor.Position);
DataGridView.HitTestInfo hit = dataGridView2.HitTest(p.X, p.Y);
if(hit.RowIndex > 0)     /////////////////////////////////////////// Löst alle Probleme
{
textBox50.Text = dataGridView2.Rows[hit.RowIndex].Cells[0].Value.ToString();
//...............
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 18.05.16 21:41 
Ich gehe mal davon aus das die erste Zeile RowIndex 0 hat und entsprechend deinem Code nicht mehr anklickbar ist.

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mi 25.05.16 10:49 
ok, ich muss -1 nehmen, weil sonst die erste Zeile nicht mehr funkt
ausblenden C#-Quelltext
1:
if(hit.RowIndex > -1)     /////////////////////////////////////////// Löst alle Probleme					


hab gerade gehen, wenn ich die letzte Zeile (leer) anklicke, kommt es zum Crash, wie ich kann ich das abfangen?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 25.05.16 10:56 
Hallo tomycat,

ich wiederhole mich mal:
Th69 hat folgendes geschrieben:
Abstürze gibt es unter .NET (eigentlich) nicht, d.h. es wird eine Exception geworfen (und diese solltest du untersuchen und dann hier posten).

Als Ergänzung (besser formuliert):
Abstürze gibt es unter .NET (eigentlich) nicht, d.h. es wird eine Exception geworfen (und diese solltest du untersuchen und dann, wenn du selber nicht weiterkommst, hier posten).

Für diesen Beitrag haben gedankt: tomycat
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 25.05.16 14:55 
Zitat:
hab gerade gehen, wenn ich die letzte Zeile (leer) anklicke


Wenn das die NewItem Row ist dann gibt es für diese Zeile keine Row dann sollte du also nicht nur auf >=0 testen sondern auch auf < Rows.Length.