domenica 20 maggio 2007

Disabilitare il riordino Ascendente / Discendente sul DataGridView

Cliccando sulla header del DataGridView si ottiene il riordino dei dati.
Per impedire che venga fatto uno dei metodi è intercettare il click e interrompere l'azione di riordino.
Per farlo ho aggiunto un evento MouseMove sul DataGridView

C#

private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{

DataGridView.HitTestInfo ht
= dataGridView1.HitTest(e.X, e.Y);
if ((ht.Type == DataGridViewHitTestType.ColumnHeader) && (ht.ColumnIndex == 0))
MessageBox.Show(
"Ordinamento vietato");
}


VB.NET


Private Sub dataGridView1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dataGridView1.MouseDown
Dim ht As DataGridView.HitTestInfo
= dataGridView1.HitTest(e.X, e.Y)
If ((ht.Type
= DataGridViewHitTestType.ColumnHeader) AndAlso (ht.ColumnIndex = 0)) Then
MessageBox.Show(
"Ordinamento vietato")
End If
End Sub


Spiegazione:
HittestInfo è un oggetto che espone la proprietà "Type" relativa alla enumerazione DataGridViewHittestType che elenca alcuni degli oggetti costituenti la DataGridView.
Utilizziamo HittestInfo generato dalle coordinate del punto cliccato per determinare se si è cliccata una header.
HittestInfo espone anche la proprietà ColumnIndex che espone il numero della colonna cliccata.

Nessun commento: