Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona

Delegato DataGridViewCellErrorTextNeededEventHandler

Nota: questo delegato è stato introdotto con .NET Framework versione 2.0.

Rappresenta il metodo che gestirà l'evento CellErrorTextNeeded di un oggetto DataGridView.

Spazio dei nomi: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public delegate void DataGridViewCellErrorTextNeededEventHandler (
	Object sender,
	DataGridViewCellErrorTextNeededEventArgs e
)
/** @delegate */
public delegate void DataGridViewCellErrorTextNeededEventHandler (
	Object sender, 
	DataGridViewCellErrorTextNeededEventArgs e
)
JScript supporta l'utilizzo di delegati ma non la dichiarazione di nuovi.

Parametri

sender

L'origine dell'evento.

e

Oggetto DataGridViewCellErrorTextNeededEventArgs che contiene i dati dell'evento.

L'evento CellErrorTextNeeded si verifica solo se è impostata la proprietà DataSource del controllo DataGridView o se la relativa proprietà VirtualMode è true. La gestione dell'evento CellErrorTextNeeded è utile quando si desidera determinare l'errore di una cella in base allo stato o al valore della cella.

Quando si gestisce l'evento CellErrorTextNeeded e si specifica il testo dell'errore nel gestore, viene visualizzata un'icona di errore nella cella, a meno che la proprietà DataGridView.ShowCellErrors non sia impostata su false o che la cella non si trovi in modalità di modifica. Quando l'utente sposta il puntatore del mouse sull'icona di errore, il testo dell'errore viene visualizzato in una descrizione comandi.

L'evento CellErrorTextNeeded si verifica inoltre ogni volta che viene recuperato il valore della proprietà DataGridViewCell.ErrorText.

È possibile utilizzare le proprietà DataGridViewCellEventArgs.RowIndex e ColumnIndex per determinare lo stato o il valore di una cella e quindi utilizzare tali informazioni per modificare il valore della proprietà DataGridViewCellErrorTextNeededEventArgs.ErrorText. Questa proprietà viene inizializzata sul valore della proprietà ErrorText della cella, che esegue l'override del valore dell'evento.

Quando si utilizzano grandi quantità di dati, per evitare una diminuzione nelle prestazioni a causa dell'impostazione del valore della proprietà ErrorText per più celle, si consiglia di gestire l'evento CellErrorTextNeeded. Per ulteriori informazioni, vedere Procedure consigliate per ridimensionare il controllo DataGridView Windows Form.

Per ulteriori informazioni sulla gestione di eventi, vedere Utilizzo degli eventi.

Quando si crea un delegato DataGridViewCellErrorTextNeededEventHandler, si identifica il metodo che gestirà l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni qualvolta si verifica l'evento, a meno che il delegato non venga rimosso. Per ulteriori informazioni sui delegati del gestore eventi, vedere Eventi e delegati.

Nell'esempio di codice riportato di seguito viene illustrato come viene impostato il testo di errore per una cella mediante il delegato DataGridViewCellErrorTextNeededEventHandler.

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

private void 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;
}

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

private DataGridViewCellEventArgs theCellImHoveringOver;

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

private DataGridViewCellEventArgs cellErrorLocation;

private void 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;
    }
}

private void 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();
private int unsharedRowCounter;

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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft