DEV 的Gridiew Ctrl + C 和 Ctrl + V

本文档详细介绍了如何在DevExpress的GridView控件中实现Ctrl+C复制和Ctrl+V粘贴功能,包括设置关键事件处理、处理剪贴板数据以及处理单元格编辑时的读写状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 #region Copy & Paste - 
        private bool ctrlCDown = false;
        private bool ctrlVDown = false;
        /// <summary>
        /// 
        /// </summary>
        /// <![CDATA[
        /// For Copy Function your GridView should set like below
        /// gridView.OptionsView.AllowCellMerge = false;
        /// gridView.OptionsSelection.MultiSelect = true;
        /// gridView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect;
        /// ]]>
        /// <param name="gridViews"></param>
        public void SetCopyAndPasteFunction(GridColumn[] usedColumns, params GridView[] gridViews)
        {
            try
            {
                foreach (GridView gridView in gridViews)
                {
                    #region KeyDown Event Part
                    gridView.KeyDown += new KeyEventHandler(
                        delegate(object sender, KeyEventArgs e)
                        {
                            GridView currentGridView = sender as GridView;
                            if (currentGridView == null) return;
                            System.Diagnostics.Debug.WriteLine(e.KeyCode);
                            if (e.Control)
                            {
                                //gvList.CloseEditor();
                                System.Diagnostics.Debug.WriteLine("Ctrl+" + e.KeyCode);
                                if (e.KeyValue == ((int)'C') || e.KeyValue == ((int)'c')) //Copy
                                {
                                    ctrlCDown = true;
                                }
                                else if (e.KeyValue == ((int)'V') || e.KeyValue == ((int)'v')) //Paste
                                {
                                    
                                    // 修改问题124:数字不能 Ctrl+C/V  -> 请修改成可以。 (Main信息 – Pattern基准Spec也要)
                                    // islocked=false页面锁定状态不能粘贴进来
                                    if (currentGridView.Editable == true && currentGridView.FocusedColumn != null && currentGridView.FocusedRowHandle >= 0 && currentGridView.FocusedRowHandle < currentGridView.DataRowCount)
                                    {
                                        if (ctrlCDown == true)
                                        {
                                            ctrlCDown = false;
                                            RemoveClipBoardHeader();
                                        }

                                        string text = null;
                                        IDataObject data = Clipboard.GetDataObject();
                                        if (data.GetDataPresent(DataFormats.Text))
                                        {
                                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值