如何在鼠标悬停在单元格中时,根据单元格中存在的值显示DataGridView中单元格的工具提示

时间:2017-01-20 10:43:07

标签: c# winforms datagridview

enter image description here

如上所述考虑我的DataGridView,当鼠标悬停在NameID字段中的单元格上时,基于单元格中的值 - 应显示工具提示。 例如:如上图(图片)所示,当鼠标悬停在NameID字段中的值“3”上时 - “ABC”显示为工具提示,类似于“1”,它应显示“DBC”,依此类推。

以下是我用C#-Winforms编写的代码,基于此链接中的文章:https://msdn.microsoft.com/en-us/library/2249cf0a(v=vs.110).aspx

但这似乎不起作用,即使属性ShowCellToolTips也是真的。

   void ToolTip1(object sender,DataGridViewCellFormattingEventArgs e)
   {
       if ((e.ColumnIndex == this.dataGridView1.Columns["NameID"].Index)
           && e.Value != null)
       {
           DataGridViewCell cell =
               this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
           if (e.Value.Equals("0"))
           {
               cell.ToolTipText = "Please update NameID as required, To know more click Help icon";
           }
           else if (e.Value.Equals("1"))
           {
               cell.ToolTipText = "DBC";
           }
           else if (e.Value.Equals("2"))
           {
               cell.ToolTipText = "XYZ";
           }
           else if (e.Value.Equals("3"))
           {
               cell.ToolTipText = "ABC";
           }

       }
   }

我怎样才能做到这一点?如何使这项工作?

1 个答案:

答案 0 :(得分:2)

您可以像这样使用CellMouseEnter事件:

private void dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
            {
                if ((e.ColumnIndex == this.dataGridView1.Columns["NameID"].Index))
                {
                    //column name
                    DataGridViewCell cell =
                        this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
                    //column id
                    DataGridViewCell cell1 =
                      this.dataGridView1.Rows[e.RowIndex].Cells["NameID"];

                    cell.ToolTipText = "DBC";

                    if (cell1.Equals("0"))
                    {
                        cell.ToolTipText = "Please update NameID as required, To know more click Help icon";
                    }
                    else if (cell1.Equals("1"))
                    {
                        cell.ToolTipText = "DBC";
                    }
                    else if (cell1.Equals("2"))
                    {
                        cell.ToolTipText = "XYZ";
                    }
                    else if (cell1.Equals("3"))
                    {
                        cell.ToolTipText = "ABC";
                    }

                }
    }

在这里找到more