c# - 如何绑定(bind)到 DatagridView Tooltip 而不是 Textbox?

标签 c# winforms datagridview

我想让其中一列的工具提示使用 obj.sometext 中的文本,而不是为 obj.sometext 添加新列。

  dataGridView.DataSource= List<obj>;

最佳答案

我建议使用 CellToolTipTextNeeded 事件。调整 Hans 产量的代码示例

public class MyObject {
    private string _name;
    private int _age;
    private string _tooltip;

    public string Name {
        get { return _name; }
        set { _name = value; }
    }

    [Browsable(false)]
    public string Tooltip {
        get { return _tooltip; }
        set { _tooltip = value; }
    }

    public int Age {
        get { return _age; }
        set { _age = value; }
    }
}

private void Form1_Load(object sender, EventArgs e) {
   List<MyObject> list = new List<MyObject>();
   list.Add(new MyObject 
            { Name = "my name", Tooltip="tooltip1", Age = 18 });
   list.Add(new MyObject 
            { Name = "just my other name", Tooltip="tooltip2", Age = 18});                                    
   this.dataGridView1.DataSource = list;
}

private void dataGridView1_CellToolTipTextNeeded(object sender, 
  DataGridViewCellToolTipTextNeededEventArgs e)   {
  if ((e.RowIndex > -1) && (e.ColumnIndex == this.dataGridView1.Columns["Name"].Index)) {
    e.ToolTipText = 
           ((MyObject)(dataGridView1.Rows[e.RowIndex].DataBoundItem)).Tooltip;
  }
}

关于c# - 如何绑定(bind)到 DatagridView Tooltip 而不是 Textbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9792426/

相关文章:

c# - 在使用c#导入datagridview之前根据单元格值删除一些行

c# - 打印电子邮件

c# - 使用动态类型从匿名对象中获取值是不好的做法吗?

c# - KeyEventArgs.Handled 与 KeyEventArgs.SupressKeyPress

c# - Json.NET - 在 winforms 中反序列化和解析 json 数据

c# - 如何将多个字符串值传递给 C# 中的按钮单击事件处理程序

c# - 如何使用 LinkedIn REST API 发帖到群组?

c# - 如何正确处理 ASP.Net Core 3 Web API 中的多个端点

c# - 交换单元格数据会违反唯一约束,尽管整体更改是有效的

c# - 如何优化DataGridView的性能