c#winform中gridview单元格增加临时按钮 |
您所在的位置:网站首页 › gridview添加按钮事件 › c#winform中gridview单元格增加临时按钮 |
在实际应用中我们总会遇到在某一个单元格输入值的时候,通过下拉框,因为选择项太多,很不方便,这时就需要弹出对话框中去操作选择输入的值。这时,我们就需要在单元格中放置一个按钮,通过按钮来弹出窗体,进行选择。依照以下步骤可以完成这个功能。 1、创建加入的按钮要实现的弹出对话框功能 private PayMethod_Click(object sender, EventArgs e) { FrmPayMethodSelect frmPMS=new FrmPayMethodSelect(); //支付方式选择弹出框 if(frmPMS.ShowDialog()==System.Windows.Forms.DialogResult.OK) { paymethod=frmPMS.PayMethod; dgvPay.Rows[selectindex].Cells["code"]=paymethod; } }
2、写一个过程用于在单元格中创建按钮,并加载显示。 Button CreateButton(DataGridView dgv, DataGridViewCellCancelEventArgs e, EventHandler btnhandler, string code) { System.Windows.Forms.Button btn = new System.Windows.Forms.Button();//创建Buttonbtn btn.Text ="...";//设置button显示文字 btn.Font = new System.Drawing.Font("Arial", 9);//设置文字格式 字体及大小 btn.Visible = true;//设置控件允许显示 btn.BackColor = Color.Silver; //颜色 btn.FlatStyle = FlatStyle.Standard;//外观样式 btn.Width = dgv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true).Height;//获取单元格高并设置为btn的宽 btn.Height = dgv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true).Height;//获取单元格高并设置为btn的高 btn.Click += btnhandler; //设置按钮事件 btn.Name = "dgvBtn" + code; selectindex=e.RowIndex;//全局变量,保存选中行号 dgv.Controls.Add(btn); //将按钮增加显示到单元格中 btn.Location = new System.Drawing.Point( ((dgv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true).Right) - (btn.Width)), dgv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true).Y);//设置btn显示位置 return btn; } 3、编写grid的CellBeginEdit事件,当进入单元格编辑状态 显示按钮 private void dgvPay_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { string code = dgvPay.Rows[e.RowIndex].Cells["code"].Value.ToString();//判断条件 if (type.IndexOf("D") >= 0) { this.dgvDept.Controls.Clear();//移除所有控件 if (e.RowIndex == 0) { return; } //支付方式 if (code.Equals("PayMethod")) { CreateButton(dgvDept, e, PayMethod_Click, code); //创建按钮 } } } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |