• Winform DataGridView 行单元格增加自定义 ToolTip


    啪!贴示例代码

    ToolTip _tip = null;
    
    public frmMain()
    {
        InitializeComponent();
        InitToolTip();
        InitDgv();
    }
    
    private void InitToolTip()
    {
        _tip = new ToolTip()
        {
            ReshowDelay = 50,
            AutoPopDelay = 10000,
        };
    }
    
    /// <summary>
    /// 初始化 dgv
    /// </summary>
    private void InitDgv()
    {
        dgvInfos.Columns.Add(new DataGridViewCheckBoxColumn() { Name = "colIsEnable", DataPropertyName = "IsEnable", HeaderText = "启用", MinimumWidth = 40, Width = 40 });
        dgvInfos.Columns.Add(new DataGridViewTextBoxColumn() { Name = "colServer", DataPropertyName = "Server", HeaderText = "服务器", AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells });
        dgvInfos.Columns.Add(new DataGridViewTextBoxColumn() { Name = "colDb", DataPropertyName = "Db", HeaderText = "数据库", AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells });
        dgvInfos.Columns.Add(new DataGridViewButtonColumn() { Name = "colBtnEdit", HeaderText = "", DefaultCellStyle = new DataGridViewCellStyle() { NullValue = "编辑", Alignment = DataGridViewContentAlignment.MiddleCenter }, MinimumWidth = 60, Width = 60 });
    
        dgvInfos.MultiSelect = false;
        dgvInfos.RowHeadersVisible = false;
        dgvInfos.ReadOnly = true;
        dgvInfos.AllowUserToResizeRows = false;
        dgvInfos.AllowUserToAddRows = false;
        dgvInfos.AutoGenerateColumns = false;
        dgvInfos.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        dgvInfos.ShowCellErrors = false;
        dgvInfos.ShowCellToolTips = false;
        dgvInfos.ShowEditingIcon = false;
        dgvInfos.ShowRowErrors = false;
    }
    
    private void dgvInfos_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex < 0)
        {
            _tip.RemoveAll();
            return;
        }
    
        try
        {
            string sColName = this.dgvInfos.Columns[e.ColumnIndex].Name;
            var info = ConfigMdl.Settings[e.RowIndex];
    
            if (sColName == "colServer")
            {
                _tip.ToolTipTitle = "数据库配置";
                _tip.SetToolTip(dgvInfos, string.Format("服务器:{0}\r\n数据库:{1}" info.Server, info.Db));
            }
            else
            {
                _tip.RemoveAll();
            }
    
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    
    private void dgvInfos_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
    {
        _tip.RemoveAll();
    }
  • 相关阅读:
    【原】基础篇:第九篇,Ext组件系列之field组件的基本用法
    为什么要返回byte[]
    Migrate Mysql to SQL Server 2005
    关于编码规范
    RPM删除包的时候报127错误
    邮政储蓄的线上故障
    string.replaceAll与StringUtils.replace
    EJB工作原理
    OJB Connection
    找工作
  • 原文地址:https://www.cnblogs.com/seanyan/p/15748210.html
Copyright © 2020-2023  润新知