Is er in C# een mogelijkheid om een event te krijgen bij een OnTitleClick waarbij je de veldnaam meekrijgt? Zoals bij een ontitleclick bij een grid in delphi.
alvast bedankt
Is er in C# een mogelijkheid om een event te krijgen bij een OnTitleClick waarbij je de veldnaam meekrijgt? Zoals bij een ontitleclick bij een grid in delphi.
alvast bedankt
Niet zonder DataGrid af te leiden.
Je kan wel een click op de ColumnHeader afvangen. Volgende code doet het op een DataGrid, werkt zowel met DataSet als met ArrayList als DataSource voor de DataGrid. Je kan ook MouseUp gebruiken.
Een andere manier is via de TableStyles en Mappings.
Code:procedure TWinForm1.DataGrid_Click(sender: System.Object; e: System.EventArgs); var P: Point; HitInfo: DataGrid.HitTestInfo; Grid: DataGrid; begin Grid := Sender as DataGrid; P := Grid.PointToClient(Cursor.Position); HitInfo := Grid.HitTest(P); if HitInfo.&Type <> DataGrid.HitTestType.ColumnHeader then Text := System.String.Format('({0}-{1}) {2}', P.X,P.Y, Enum(HitInfo.&Type).ToString + System.String.Format('{0}',HitInfo.Column) ) else Text := System.String.Format( 'Kolom {0} : {1}', HitInfo.Column.ToString, Grid.BindingContext.Item[Grid.DataSource,Grid.DataMember].GetItemProperties[HitInfo.Column].Name); end;
All methodologies are based on fear. -- Kent Beck.
Oops! Moest C# zijn:
Code:private void dataGrid_Click(object sender, System.EventArgs e) { DataGrid Grid = (DataGrid)sender; Point p = Grid.PointToClient(Cursor.Position); DataGrid.HitTestInfo hitInfo = Grid.HitTest(p); if (hitInfo.Type != DataGrid.HitTestType.ColumnHeader) Text = String.Format("({0}-{1}) {2}",p.X,p.Y, hitInfo.Type.ToString() + String.Format("{0}",hitInfo.Column)); else Text = String.Format("Kolom {0} : {1}", hitInfo.Column.ToString(), Grid.BindingContext[Grid.DataSource,Grid.DataMember].GetItemProperties()[hitInfo.Column].Name); }
All methodologies are based on fear. -- Kent Beck.
Ook: noteer dat bovenstaande brouwsels het gevolg zijn van eigen experimenten, misschien zijn er andere en/of betere manieren. Databinding in het .NET framework is blijkbaar één van de minder gedocumenteerde onderdelen.
Ik ben vertrokken van het standpunt dat je geen weet hebt van het type van de DataSource van de DataGrid (ik gebruik zelf bijvoorbeeld zelden of nooit DataSets, tenzij soms in ASP.NET voor web-based rapportering).
All methodologies are based on fear. -- Kent Beck.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks