True DBGrid for WinForms | ComponentOne
Cells / Cell Editing / Cell Button
In This Topic
    Cell Button
    In This Topic

    True DBGrid for WinForms supports a variety of in-cell button options for the current cell or for all cells within specified columns. Use in-cell buttons to indicate that a list of choices is available, to perform a command associated with the contents of the cell, or to display an arbitrary control or form for editing.

    Enabling the In-Cell Button

    To enable the in-cell button for a C1DisplayColumn object, set its Button property to True in code:

    C#
    Copy Code
    this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].Button = true;
    

    The Button property is also enabled when the column's DropDown property is set to the name of a C1TrueDBDropDown control, or when the Presentation property of the associated ValueItemCollection object is set to one of the combo box options.

    By default, the in-cell button displays only for the current cell, as shown in the following image:

    However, by setting the column's ButtonAlways property to True, you can force the in-cell button to be displayed in every row:

    Rendering Cells as Command Buttons

    To render the current cell as a non-editable command button within a C1DisplayColumn object, set its ButtonText property to True in code:

    C#
    Copy Code
    this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].ButtonText = true;
    

    When a cell within the column receives focus, it is rendered as a standard Windows command button using the cell text as the caption. The cell text is not centered automatically, but respects the column's horizontal and vertical alignment settings:
    If both the Button and ButtonText properties are True, the ButtonText property takes precedence.

    As with the default in-cell button, set the column's ButtonAlways property to True to force all of its cells to be displayed as command buttons. Only the current cell is drawn with a focus rectangle, however:

    Detecting In-Cell Button Clicks

    The ButtonClick event is provided so that code can respond when the user clicks the in-cell button. Its syntax is as follows:

    C#
    Copy Code
    private void C1TrueDBGrid1_ButtonClick( object sender,  C1.Win.C1TrueDBGrid.ColEventArgs e)
    

    In-cell buttons always fire this event when clicked, regardless of whether they were enabled by the Button or ButtonText properties. An example of the ButtonClick event was presented earlier in the section Working with Text.

    Customizing the In-Cell Button Bitmap

    By default, True DBGrid for WinForms uses a down arrow for the in-cell button. asda

    However, the button bitmap can be changed for a C1DisplayColumn object at design time by setting the ButtonPicture property in code:

    C#
    Copy Code
    this.c1TrueDBGrid1.Columns[0].ButtonPicture = System.Drawing.Image.FromFile("dollar.bmp");
    

    The grid automatically draws the edges corresponding to the button's up/down states as appropriate, so only the interior image of the button needs to be provided.