none
Dica: Editando células de um DataGrid RRS feed

  • Discussão Geral

  • Galera,


    depois de ficar horas pesquisando sobre o assunto, vi que o DataGrid para compact framework não tem a possibilidade de editar a célula. Bom, continuei pesquisando um pouco e vi que existe uma maneira de fazer com que seja feita a edição da célula (Gambiarra).

    Primeiro, adicionamos um TextBox no form, no meu caso chamei de txtEditCell.

    Depois no evento click do grid, colocamos a seguinte instrução de código:

    private void grid_Click(object sender, EventArgs e)
    {

    //Pegando a célula corrente.
    DataGridCell cell = grid.CurrentCell;

    //Retirando o evento TextChanged
    txtEditCell.TextChanged -= txtEditCell_TextChanged

    //Setando o texto que está na célula corrente no text box.
    txtEditCell.Text = grid[cell.RowNumber,cell.ColumnNumber].ToString();

    //Adicionando o evento TextChanged
    txtEditCell.TextChanged += txtEditCell_TextChanged

    //pegando a posição da célula.
    Rectangle rc = grid.GetCellBounds(cell.RowNumber, cell.ColumnNumber);

    //posicionando o text box em cima da célula corrente.
    txtEditCell.Bounds = RectangleToClient(grid.RectangleToScreen(rc));

    txtEditCell.Focus();
    }

    E no evento TextChanged do TextBox (txtEditCell), colocamos a seguinte instrução de código:

    private void txtEditCell_TextChanged(object sender, EventArgs e)
    {
    grid[grid.CurrentCell.RowNumber,grid.CurrentCell.ColumnNumber] = txtEditCell.Text.Trim();
    }


    Bom, espero ter ajudado.

    quarta-feira, 17 de outubro de 2007 17:08