C# 在DataGridView中,点击单元格调出 TreeView控件 或 ListBox控件

1、调出 TreeView控件 或  ListBox控件

  private void deductGrid1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex < 0 || e.RowIndex < 0)
                return;

            if (e.ColumnIndex == 19 || e.ColumnIndex == 22 || e.ColumnIndex == 25)
            {
                Rect = deductGrid1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);              
                this.TvEmp.Size = new Size(122,300);              
                TvEmp.Location = new Point(Rect.X, Rect.Y);
                TvEmp.Visible = true;               

            }
            else
            {
                TvEmp.Visible = false;
            }
            if (e.ColumnIndex == 20 || e.ColumnIndex == 23 || e.ColumnIndex == 26)
            {
                Rect = deductGrid1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
                this.cmb.Size = new Size(Rect.Width , 2 * Rect.Height);
                cmb.Location = new Point(Rect.X, Rect.Y + Rect.Height);
                cmb.Items.Clear();
                cmb.Items.Add("");
                cmb.Items.Add("");
                //this.cmb .Size = new Size(Rect .Width ,Rect .Height);
                //cmb.Location = new Point(Rect.X, Rect.Y);
                cmb.Visible = true;

            }
            else
            {
                cmb.Visible = false;
            }
        }
View Code

2、处理TreeView控件 选择内容赋值到单元格内

private void TvEmp_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (TvEmp.GetNodeAt(e.X, e.Y) == null) return;
            if (TvEmp.GetNodeAt(e.X, e.Y).Level < 2)
            {
                dqlib.ShowExclamation("请选择有效的信息!");
                return;
            }
            if (deductGrid1.CurrentCell .ColumnIndex-1 == 18)
            {
                deductGrid1.Rows[deductGrid1.CurrentRow.Index].Cells["EmpOne"].Value = TvEmp.GetNodeAt(e.X, e.Y).Tag;
                deductGrid1.CurrentCell.Value = TvEmp.GetNodeAt(e.X, e.Y).Text;
            }
            if (deductGrid1.CurrentCell.ColumnIndex - 1 == 21)
            {
                deductGrid1.Rows[deductGrid1.CurrentRow.Index].Cells["EmpTwo"].Value = TvEmp.GetNodeAt(e.X, e.Y).Tag;
                deductGrid1.CurrentCell.Value = TvEmp.GetNodeAt(e.X, e.Y).Text;
            }
            if (deductGrid1.CurrentCell.ColumnIndex - 1 == 24)
            {
                deductGrid1.Rows[deductGrid1.CurrentRow.Index].Cells["EmpThree"].Value = TvEmp.GetNodeAt(e.X, e.Y).Tag;
                deductGrid1.CurrentCell.Value = TvEmp.GetNodeAt(e.X, e.Y).Text;
            }
            //deductGrid1.CurrentCell.Value = TvEmp.GetNodeAt(e.X ,e.Y).Text;
            //deductGrid1.CurrentCell.Tag = TvEmp.GetNodeAt(e.X, e.Y).Tag;
           
            TvEmp.Visible = false;
        }
View Code

3、处理ListBox控件

private void cmb_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmb.SelectedItem != null)
            {
                this.deductGrid1.CurrentCell.Value = this.cmb.SelectedItem.ToString();
                this.cmb.Visible = false;
            }
           
        }
View Code

 

转载于:https://www.cnblogs.com/lzsin/p/11177445.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值