Autor Beitrag
edvazubi
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 22.03.19 13:41 
Hallo, mit Hilfe einer TextBox suche ich in einem DataGridView nach einem bestimmten Wert. Diese bekomme ich mit folgender Funktion auch heraus:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
        public void searchweek()
        {
            string searchValue = textBox1.Text;

            dataGridViewDBLW.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            try
            {
                foreach (DataGridViewRow row in dataGridViewDBLW.Rows)
                {
                    if (row.Cells[0].Value.ToString().Equals(searchValue))
                    {
                        row.Selected = true;
                        break;
                    }
                }
            }
            catch (IOException ex)
            {
                if (ex.Source != null)
                    MessageBox.Show("IOException source:{0}", ex.Source);
                throw;

            }


Nun möchte ich, das die Zeile die dadurch markiert wird, auch angezeigt wird wenn sie nicht in meinem sichtbaren Bereich ist.

Mit der Eigenschaft "DataGridView.FirstDisplayedScrollingRowIndex" soll das ganze realisierbar sein, ich bekomme es aber nicht so wirklich zum laufen.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4010
Erhaltene Danke: 824

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Fr 22.03.19 14:24 
Woran scheitert es denn?

Probiere mal (vor dem break):
ausblenden C#-Quelltext
1:
dataGridViewDBLW.FirstDisplayedScrollingRowIndex = row.Index;					


Zuletzt bearbeitet von Th69 am Fr 22.03.19 14:24, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: edvazubi
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4424
Erhaltene Danke: 903


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 22.03.19 14:24 
Ich weiß nicht was du probiert hast und was bei dir scheitert da du den entsprechenden Code nicht zeigst.
Ich würde einfach an der Stelle wo du Selected setzt eine Zelle dieser Row als die aktuelle Zelle setzen.
Damit zwingst du das Grid diese Zelle in den sichtbaren Bereich zu scrollen (so wie es gerade am günstigsten ist) und die Row/die Zelle ist nicht nur selektiert sondern auch fokussiert.
Was man vermutlich in diesem Kontext auch will.

Für diesen Beitrag haben gedankt: edvazubi
edvazubi Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 22.03.19 14:34 
ausblenden C#-Quelltext
1:
dataGridViewDBLW.FirstDisplayedScrollingRowIndex = row.Index;					

vor dem break zu setzen hat funktioniert. Dankeschön.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt