Results 1 to 4 of 4

Thread: OnTitleClick bij DataGrid in C#

  1. #1

    OnTitleClick bij DataGrid in C#

    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

  2. #2
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    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.

  3. #3
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    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.

  4. #4
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    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.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Opmaak bij het openen van een DBRichEdit
    By YVO in forum Databases
    Replies: 3
    Last Post: 30-Dec-03, 00:09
  2. Problemen Ora8.dll bij stored procedures
    By Parralax in forum Databases
    Replies: 19
    Last Post: 17-Dec-03, 17:00
  3. Nieuwe Method bij een component ?
    By RedPanda in forum Algemeen
    Replies: 2
    Last Post: 13-Apr-03, 17:52
  4. Replies: 5
    Last Post: 08-Apr-03, 00:31
  5. pijltjes gebruiken bij onkeydown
    By grand stroumf in forum Algemeen
    Replies: 8
    Last Post: 22-Mar-03, 20:02

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •