【原创】datagridview动态绑定contextmenustrip,并复制单元格数据

public class DGVCopy
    {
        public DataGridView DataGridViewCopy { get; set; }
        public int X { get; set; }
        public int Y { get; set; }
        public void CopyData()
        {
            DataGridViewCopy.CellMouseClick += new DataGridViewCellMouseEventHandler(DataGridViewCopy_CellMouseClick);
        }
        void DataGridViewCopy_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                if (e.Button == MouseButtons.Right )
                {
                    DataGridViewCopy.CurrentCell = DataGridViewCopy.Rows[e.RowIndex].Cells[e.ColumnIndex];
                    ContextMenuStrip contextMenuStrip1 = new ContextMenuStrip();
                    contextMenuStrip1.Items.Add("复制");
                    contextMenuStrip1.Size = new Size(30, 30);
                    DataGridViewCopy.ContextMenuStrip = contextMenuStrip1;
                    contextMenuStrip1.Show(X,Y);
                    contextMenuStrip1.Click += new EventHandler(contextMenuStrip1_Click);
                }
            }
        }
        void contextMenuStrip1_Click(object sender, EventArgs e)
        {
            Clipboard.SetDataObject(DataGridViewCopy.GetClipboardContent().GetText().Trim());
        }
    }

时间: 2024-07-29 12:53:44

【原创】datagridview动态绑定contextmenustrip,并复制单元格数据的相关文章

Flex4 DataGrid实现可复制单元格,同时解决自定义GridItemRenderer出现1009错误的方法

原创内容,如需转载,请注明出处,谢谢 最近在项目中发现Flex的DataGrid不支持内容复制,在涉及到保护敏感数据时倒是很有用处,但大部分情况下,我们还是希望客户能够直接复制DataGrid单元格中的内容进行快速操作,这个与用户体验背道而驰的问题一定要解决,因此想到直接自定义DataGrid的项呈现器来实现. 呆毛如下: 本来以为可以非常顺利,哪知居然给我碰到了一个BUG,网上查了查,也有不少童鞋们碰到了这个问题,不过似乎都没有有效的解决方案,这个主要是思维固化了,总认为官方的就一定是正确的.

ExtJS4.2 Grid知识点七:显示行号、斑马线效果(奇偶行背景色不一致)、复制单元格文字、禁止点击列排序

本节主要学习ExtJS4.2 Grid显示行号.斑马线效果(奇偶行背景色不一致).复制单元格文字.禁止点击列排序.禁止列头部右侧菜单,示例图片: 在线演示  /  在线演示 主要内容如下: 显示行号 斑马线效果(奇偶行背景颜色不一致) 复制单元格问题 禁止点击列排序 禁止列头部右侧菜单 1.显示行号 在Grid中增加行号列,xtype指定为rownumberer. {header: 'NO',xtype: 'rownumberer',width: 40,sortable: false} 2.斑马

【VBA】复制单元格数据有效性

单元格内设置了有效性,通过VBA怎么去复制呢?代码如下: Public Sub 复制单元格批注() Dim range1 As range Dim range2 As range '清除G列 Columns("G:G").Clear Set range1 = range("A1:A2") '指定要复制的单元格区域 Set range2 = range("D1") '指定要复制的位置(左上角单元格 range1.Copy range2.PasteS

DataGridView获取或者设置当前单元格的内容

当前单元格指的是DataGridView焦点所在的单元格,它可以通过DataGridView对象的CurrentCell属性取得.如果当前单元格不存在的时候,返回null. 取得当前单元格的内容: object obj = this.dgv_PropDemo.CurrentCell.Value; 注:返回值是object类型的. 取得当前单元格的列Index: int columnIndex = this.dgv_PropDemo.CurrentCell.ColumnIndex; 取得当前单元格

Swing-JTable检测单元格数据变更事件

在JTable的初级教程中往往会提到,使用TableModel的 addTableModelListener方法可以监听单元格数据的变更,在其事件处理函,数tableChanged中,可以通过e.getColumn(),e.getFirstRow(),e.getLastRow(),e.getType()来获取变更发生的位置和变更的类型(插入.更新或删除).然而该方法存在2个致命的问题: 1.双击单元格使其处于可编辑状态后,即使没有做出任何修改,当单元格失去焦点时,该事件将被激活. 2.通过该事件

VBS读取txt文档数据查找Excel中单元格数据符合条件的剪切到工作表2中

Dim fso,f,a set oExcel = CreateObject( "Excel.Application" ) oExcel.Visible = false '4) 打开已存在的工作簿: oExcel.WorkBooks.Open( "F:\1.xlsx" ) On Error Resume Next '判断是否存在Sheet2工作表,不存在新建 If oExcel.WorkSheets("Sheet2") Is Nothing The

JS遍历表格获取每行数据及每个单元格数据

/** * 遍历表格获取每行数据及每个单元格数据 * @param tableID 表格ID */ function GetTable(tableID) { var milasUrl = {};//新建对象,用来存储所有数据 var subMilasUrlArr = {};//存储每一行数据 var tableData = {}; $("#" + tableID + " tbody tr").each(function (trindex, tritem) {//遍历

【大坑】DataGridView多线程更新修改Cell单元格卡死

今天做个小工具,因为最近经常用到DataGridView,所以这次没有选择ListView.忙活了一个小时终于完工了,先运行看看吧.咦!!!!怎么卡死了.代码应该没问题呀,用的多线程也不会卡UI线程呀,打开分析工具查看DataGridView赋值Cell单元格占用CPU达到了80~90,公司的G3260不堪重负的挂掉了. BackgroundWorker解决问题 上园子里找答案,解决办法倒是找到了几种.但是都不靠谱,一样的卡死,看到博问里面说用BackgroundWorker试试.Backgro

DataGridView使用技巧十一:DataGridView用户输入时,单元格输入值的设定

通过DataGridView.CellParsing事件可以设定用户输入的值.下面的示例:当输入英文文本内容的时候,立即被改变为大写.DataGridView.CellParsing在离开编辑的单元格之后会被触发. 示例: 1 private void dgv_Users_CellParsing(object sender, DataGridViewCellParsingEventArgs e) 2 { 3 DataGridView dgv = sender as DataGridView; 4