Jag har en datagrid med tabell info som uppdateras från databasen regelbundet. Efter jag har uppdaterat vill jag att det fält som jag hade markerat innan jag uppdaterade datagriden ska vara markerat. Jag måste spara min position med musen och sätt cursorn på samma ställe som förut. Jag har försökt med lite olika men det har inte löst sig. Jag har använt mig av Point och HitTest,HitTestInfo, tex. ...Varför flyttar musen sig? Att spara undan positionen i gridden är lite falrligt därför att det finns ingen garanti för att den stämmer efter att du uppdaterat. Följd fråga!! Använd inte något med mouse click eller dylikt, det håller ju inte om användaren navigerar runt med pilarna, och inte är det speciellt snyggt, eller hur? binda en metod till eventet selected index change eller dylikt, plockar den ju både mus samt piltangenter... Det finns ju ingen anledning till att hålla på och spara undan den informationen föräns det är dags att uppdatera.HitTest i Datagrid? Fortsättning...
(i mouseDown event eller i mouseClick)
Point pt = new Point(e.X, e.Y);
DataGrid.HitTestInfo hti = datagriden.HitTest(pt);
Nu har jag positionen men hur ska jag "sätta" den på den nya uppdaterade datagriden?
tacksam för tips!
/SaraSv: HitTest i Datagrid?
...Adda ett event som lagrar den valda columnens index i en int när användarens klickar på den... (eller i ett fällt), sedan när datagriden refreshas titta ifall indexet i inten finns, isåf välj det...=?Sv: HitTest i Datagrid?
Använd istället Bindingcontext(myTable).Current
för att spara undan primärnyckeln på den raden.
Kolumnen kan du i och för sig plocka från grid.CurrentCellSv: HitTest i Datagrid?
I click event för datagriden gör jag...
System.Drawing.Point pt = datagriden.PointToClient(Cursor.Position);
DataGrid.HitTestInfo hti = datagriden.HitTest(pt);
//MessageBox.Show("Row:"+ hti.Row.ToString());
rowIndex = System.Convert.ToInt32(hti.Row.ToString());
Sedan när jag har refreshat datagriden vill jag sätta tillbaka rowIndex och den bästa metoden jag hittade var
datagriden.NavigateTo(rowNumber, relationName)
Nu undrar jag vad relationName är? Det finns inga exempel på detta”De” säger att det är "the name of the child relation to navigate to"...och vad är det?? Jag skickar ett dataset till min datagrid, om det kan handla om datasetet på något sätt.
Alla tips är välkomna!Sv: HitTest i Datagrid?
Gör så här:
1. I din metod som gör update: spar undar primärnyckeln på vald rad samt kolumnen som du kan ta från grid.currentcell som jag sa.
2. Updatera
3. Leta rätt på index för den undansparade primärnykeln :
myTable.DefaultView.Find(mySavedPrimaryKey)
4. Skapa en ny DatagridCell med det hämtade indexet och det undansparade kolumn-indexet
5. Tilldela den till datagriddens currentcellSv: HitTest i Datagrid?
Sv: HitTest i Datagrid?