Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe DataGridViewCellErrorTextNeededEventArgs

Fornece dados para o CellErrorTextNeeded evento de um DataGridView controle.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)

public class DataGridViewCellErrorTextNeededEventArgs : DataGridViewCellEventArgs

The CellErrorTextNeeded evento ocorre somente quando o DataGridView controle DataSource propriedade é definida ou seu VirtualMode propriedade é true. Manipulando o CellErrorTextNeeded evento é útil quando você deseja determinar o erro para uma célula, dependendo de seu valor ou estado.

Quando você manipula o CellErrorTextNeeded eventos e especificar texto de erro no manipulador de um glifo de erro aparece na célula, a menos que o DataGridView.ShowCellErrors propriedade estiver definida como false ou a célula está em modo de edição. Quando o usuário move o ponteiro do mouse sobre o glifo de erro, o texto de erro é exibido em uma dica de ferramenta.

The CellErrorTextNeeded evento também ocorre sempre que o valor da DataGridViewCell.ErrorText propriedade é recuperada.

Você pode usar o DataGridViewCellEventArgs.RowIndex e ColumnIndex propriedade para determinar o estado ou o valor de uma célula e usar essas informações para alterar ou modificar o DataGridViewCellErrorTextNeededEventArgs.ErrorText propriedade. Esta propriedade é inicializada com o valor da célula ErrorText propriedade, que substitui o valor do evento.

Manipular o CellErrorTextNeeded evento ao trabalhar com grandes quantidades de dados para evitar penalidades de desempenho de configuração da célula ErrorText valor para várias células. Para obter mais informações, consulte Práticas recomendadas para escala o controle DataGridView do Windows Forms.

Para obter mais informações sobre tratamento eventos, consulte Consumindo Eventos.

O código a seguir o exemplo demonstra como criar mensagens de erro para as células sem descompartilhar linhas ou que está causando o erro de célula a ser duplicado sobre todas as células compartilhadas.

private ToolStripMenuItem wholeTable = new ToolStripMenuItem();
private ToolStripMenuItem lookUp = new ToolStripMenuItem();
private ContextMenuStrip strip;
private string cellErrorText;

privatevoid dataGridView1_CellContextMenuStripNeeded(object sender,
    DataGridViewCellContextMenuStripNeededEventArgs e)
{
    cellErrorText = String.Empty;

    if (strip == null)
    {
        strip = new ContextMenuStrip();
        lookUp.Text = "Look Up";
        wholeTable.Text = "See Whole Table";
        strip.Items.Add(lookUp);
        strip.Items.Add(wholeTable);
    }
    e.ContextMenuStrip = strip;
}

privatevoid wholeTable_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = Populate("Select * from employees", true);
}

private DataGridViewCellEventArgs theCellImHoveringOver;

privatevoid dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
    theCellImHoveringOver = e;
}

private DataGridViewCellEventArgs cellErrorLocation;

privatevoid lookUp_Click(object sender, EventArgs e)
{
    try
    {
        dataGridView1.DataSource = Populate("Select * from employees where " +
            dataGridView1.Columns[theCellImHoveringOver.ColumnIndex].Name + " = '" +
            dataGridView1.Rows[theCellImHoveringOver.RowIndex].
            Cells[theCellImHoveringOver.ColumnIndex].Value + "'",
            true);
    }
    catch (SqlException)
    {
        cellErrorText = "Can't look this cell up";
        cellErrorLocation = theCellImHoveringOver;
    }
}

privatevoid dataGridView1_CellErrorTextNeeded(object sender,
    DataGridViewCellErrorTextNeededEventArgs e)
{
    if (cellErrorLocation != null)
    {
        if (e.ColumnIndex == cellErrorLocation.ColumnIndex &&
            e.RowIndex == cellErrorLocation.RowIndex)
        {
            e.ErrorText = cellErrorText;
        }
    }
}

private DataTable Populate(string query, bool resetUnsharedCounter)
{
    if (resetUnsharedCounter)
    {
        ResetCounter();
    }

    // Alter the data source as necessary
    SqlDataAdapter adapter = new SqlDataAdapter(query,
        new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;" +
        "Initial Catalog=Northwind;Data Source=localhost"));

    DataTable table = new DataTable();
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    adapter.Fill(table);
    return table;
}

private Label count = new Label();
privateint unsharedRowCounter;

privatevoid ResetCounter()
{
    unsharedRowCounter = 0;
    count.Text = unsharedRowCounter.ToString();
}


System.Object
  System.EventArgs
    System.Windows.Forms.DataGridViewCellEventArgs
      System.Windows.Forms.DataGridViewCellErrorTextNeededEventArgs

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft