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:
Posta un commento