Nasıl yapılır: Bir Windows Forms DataGridView Denetiminde Ayrı Hücrelere ToolTips Ekleme

Varsayılan olarak, Tool İpuçları tüm içeriklerini gösteremeyecek kadar küçük hücrelerin değerlerini DataGridView görüntülemek için kullanılır. Ancak, tek tek hücreler için Araç İpucu metin değerlerini ayarlamak için bu davranışı geçersiz kılabilirsiniz. Bu, kullanıcılara hücre hakkında ek bilgiler görüntülemek veya kullanıcılara hücre içeriğinin alternatif bir açıklamasını sağlamak için yararlıdır. Örneğin, durum simgelerini görüntüleyen bir satırınız varsa, Araç İpuçları kullanarak metin açıklamaları sağlamak isteyebilirsiniz.

Ayrıca İpuçları özelliğini falseolarak ayarlayarak hücre düzeyi Araç'ın görüntülenmesini DataGridView.ShowCellToolTips devre dışı bırakabilirsiniz.

Bir hücreye Araç İpucu eklemek için

  • DataGridViewCell.ToolTipText özelliğini ayarlayın.

    // Sets the ToolTip text for cells in the Rating column.
    void dataGridView1_CellFormatting(Object^ /*sender*/, 
        DataGridViewCellFormattingEventArgs^ e)
    {
        if ( (e->ColumnIndex == this->dataGridView1->Columns["Rating"]->Index)
            && e->Value != nullptr )
        {
            DataGridViewCell^ cell = 
                this->dataGridView1->Rows[e->RowIndex]->Cells[e->ColumnIndex];
            if (e->Value->Equals("*"))
            {                
                cell->ToolTipText = "very bad";
            }
            else if (e->Value->Equals("**"))
            {
                cell->ToolTipText = "bad";
            }
            else if (e->Value->Equals("***"))
            {
                cell->ToolTipText = "good";
            }
            else if (e->Value->Equals("****"))
            {
                cell->ToolTipText = "very good";
            }
        }
    }
    
    // Sets the ToolTip text for cells in the Rating column.
    void dataGridView1_CellFormatting(object sender,
        DataGridViewCellFormattingEventArgs e)
    {
        if ( (e.ColumnIndex == this.dataGridView1.Columns["Rating"].Index)
            && e.Value != null )
        {
            DataGridViewCell cell =
                this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
            if (e.Value.Equals("*"))
            {
                cell.ToolTipText = "very bad";
            }
            else if (e.Value.Equals("**"))
            {
                cell.ToolTipText = "bad";
            }
            else if (e.Value.Equals("***"))
            {
                cell.ToolTipText = "good";
            }
            else if (e.Value.Equals("****"))
            {
                cell.ToolTipText = "very good";
            }
        }
    }
    
    ' Sets the ToolTip text for cells in the Rating column.
    Sub dataGridView1_CellFormatting(ByVal sender As Object, _
        ByVal e As DataGridViewCellFormattingEventArgs) _
        Handles dataGridView1.CellFormatting
    
        If e.ColumnIndex = Me.dataGridView1.Columns("Rating").Index _
            AndAlso (e.Value IsNot Nothing) Then
    
            With Me.dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
    
                If e.Value.Equals("*") Then
                    .ToolTipText = "very bad"
                ElseIf e.Value.Equals("**") Then
                    .ToolTipText = "bad"
                ElseIf e.Value.Equals("***") Then
                    .ToolTipText = "good"
                ElseIf e.Value.Equals("****") Then
                    .ToolTipText = "very good"
                End If
    
            End With
    
        End If
    
    End Sub
    

Kod Derleniyor

  • Bu örnek şunları gerektirir:

  • Bir DataGridView ile dört arasında yıldız ("*") sembolünün dize değerlerini görüntülemek için adlı Rating bir sütun içeren bir dataGridView1 denetim. Denetimin CellFormatting olayı, örnekte gösterilen olay işleyici yöntemiyle ilişkilendirilmelidir.

  • ve System.Windows.Forms derlemelerine System başvurular.

Güçlü Programlama

Denetimi bir dış veri kaynağına bağladığınızda DataGridView veya sanal modu uygulayarak kendi veri kaynağınızı sağladığınızda performans sorunlarıyla karşılaşabilirsiniz. Büyük miktarda veriyle çalışırken performans cezasından kaçınmak için, birden çok hücrenin ToolTipText özelliğini ayarlamak yerine olayı işleyinCellToolTipTextNeeded. Bu olayı işlediğinizde, bir hücre ToolTipText özelliğinin değerini almak olayı tetikler ve olay işleyicisinde belirtildiği gibi özelliğinin değerini DataGridViewCellToolTipTextNeededEventArgs.ToolTipText döndürür.

Ayrıca bkz.