2017-01-20 1 views
2

enter image description hereКак отобразить всплывающую подсказку для ячейки в DataGridView на основе значения, присутствующей в клетке, когда мышь парит над ним

Рассмотрим мой DataGridView, как указано выше, при наведении указателя мыши на ячейку в поле NameID, на основе стоимости присутствующий в ячейке, должен отображать всплывающую подсказку. Например: Как показано выше (Изображение), когда мышь наводится над значением «3» в поле NameID - «ABC» отображается как всплывающая подсказка, аналогично для «1» она должна показывать «DBC» и так далее.

Ниже код, который я написал в C# -Winforms, на основании статьи нашли в этой ссылке: https://msdn.microsoft.com/en-us/library/2249cf0a(v=vs.110).aspx

Но это, кажется, не работают, даже ShowCellToolTips собственности производится True.

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

Вы можете просто использовать 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

+0

Ровно CellMouseEnter Событие работает отлично в этом случае. Но код нужно немного изменить, чтобы заставить его работать. Будет опубликован правильный код ниже –

Смежные вопросы