2011-11-14,联系人,组编辑,内容编辑,内容拖拽

1、组编辑

  //新增一个组
        private void group_barButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (my_groupType == "custom") return;
            using (contactGroupEdit_XtraForm my_contactGroupEdit_XtraForm = new contactGroupEdit_XtraForm() { groupId = "" })
            {
                if (my_contactGroupEdit_XtraForm.ShowDialog() == DialogResult.OK)
                {
                    this.contactGroup_PDTableAdapter.Fill(this.dataSet.contactGroup_PD, my_groupType);//刷新数据
                }
            }
        }

        //删除选中的组,“全部” 组不能删除
        private void delGroup_barButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            string my_cellString = this.group_gridView.FocusedValue as string;
            if (my_cellString.Trim() != "_全部" && my_groupType != "custom")
            {
                this.pdTableAdapter.DelGroup_PD(my_cellString.Trim());
                this.contactGroup_PDTableAdapter.Fill(this.dataSet.contactGroup_PD,my_groupType);
                this.view_contactGroupTableAdapter.Fill(this.dataSet.View_contactGroup);
                
            }
        }

        //修改组名称,"全部" 组名不能更改
        private void modifyGroup_barButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            string my_cellString = this.group_gridView.FocusedValue as string;
            if (my_cellString.Trim() != "_全部" && my_groupType!="custom")
            {
                using (contactGroupEdit_XtraForm my_contactGroupEdit_XtraForm = new contactGroupEdit_XtraForm() { groupId = my_cellString.Trim() })
                {
                    if (my_contactGroupEdit_XtraForm.ShowDialog() == DialogResult.OK)
                    {
                        this.contactGroup_PDTableAdapter.Fill(this.dataSet.contactGroup_PD,my_groupType);
                        this.view_contactGroupTableAdapter.Fill(this.dataSet.View_contactGroup);//刷新数据
                    }
                }
            }
        }


联系人行号

 //给gridView增加行号
        private void personList_gridView_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {
            if (e.Info.IsRowIndicator && e.RowHandle >= 0)
            {
                e.Info.DisplayText = Convert.ToString(e.RowHandle + 1).Trim();
            }
        }


 

联系人编辑

 

 //删除当前组中选取的联系人(“全部” 组中的会彻底删除)
        private void del_barButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            string my_groupIdString = this.group_gridView.FocusedValue as string;//获取组信息
            
            DataRowView my_contactDataRowView = this.contactGroupPDViewcontactGroupBindingSource.Current as DataRowView;
            if (my_contactDataRowView == null) return;//本组空记录,退出

            Int16 my_contactId = Convert.ToInt16(my_contactDataRowView["contactId"]);//获取联系人Id

            
                
            if (my_groupIdString.Trim() != "_全部")
            {
                this.contactGroupTableAdapter.Fill(this.dataSet.contactGroup);//填充联系人组表
                //定义搜索主键值
                object[] my_dataKey = new object[] { my_groupIdString.Trim(), my_contactId };
                DataRow my_delDataRow = this.dataSet.contactGroup.Rows.Find(my_dataKey);//获取本组的联系人记录
                
                my_delDataRow.Delete();
                this.contactGroupTableAdapter.Update(this.dataSet.contactGroup);

                this.view_contactGroupTableAdapter.Fill(this.dataSet.View_contactGroup);
            }
            else
            {
                if (MessageBox.Show("此联系人信息将彻底删除,确定吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    this.pdTableAdapter.delContact(my_contactId);
                    this.view_contactGroupTableAdapter.Fill(this.dataSet.View_contactGroup);
                }
            }
        }

        //新建一个联系人
        private void newContact_barButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            string my_groupIdString = this.group_gridView.FocusedValue as string;//获取组信息
            using (contactEdit_XtraForm my_contactEdit_XtraForm = new contactEdit_XtraForm() { contactId = -1 })
            {
                if (my_contactEdit_XtraForm.ShowDialog() == DialogResult.OK)
                {
                    //在“全部”组中增加
                    DataRow my_NewRow = this.dataSet.contactGroup.NewRow();
                    my_NewRow["groupId"] = "_全部";
                    my_NewRow["contactId"] = my_contactEdit_XtraForm.contactId;
                    my_NewRow["groupType"] = "user";
                    my_NewRow.EndEdit();
                    this.dataSet.contactGroup.Rows.Add(my_NewRow);//增加一个记录
                    if (my_groupIdString.Trim() != "_全部")
                    {
                        DataRow my_NewRow2 = this.dataSet.contactGroup.NewRow();
                        my_NewRow2["groupId"] = my_groupIdString.Trim ();
                        my_NewRow2["contactId"] = my_contactEdit_XtraForm.contactId;
                        my_NewRow2["groupType"] = my_groupType;
                        my_NewRow2.EndEdit();
                        this.dataSet.contactGroup.Rows.Add(my_NewRow2);//增加一个记录
                    }
                    this.contactGroupTableAdapter.Update(this.dataSet.contactGroup);
                    this.view_contactGroupTableAdapter.Fill(this.dataSet.View_contactGroup);

                }
            }

        }

        //修改一个联系人资料
        private void modifyContact_barButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            string my_groupIdString = this.group_gridView.FocusedValue as string;//获取组信息
            DataRowView my_contactDataRowView = this.contactGroupPDViewcontactGroupBindingSource.Current as DataRowView;
            if (my_contactDataRowView == null) return;

            using (contactEdit_XtraForm my_contactEdit_XtraForm = new contactEdit_XtraForm())
            {
                my_contactEdit_XtraForm.contactId =Convert.ToInt16( my_contactDataRowView["contactId"]);
                my_contactEdit_XtraForm.ShowDialog();
                this.view_contactGroupTableAdapter.Fill(this.dataSet.View_contactGroup);
            }
        }

 

在gridView中拖拽,将联系人放入不同组

 

 //在gridView获取鼠标点击内容
        private void personList_gridView_MouseDown(object sender, MouseEventArgs e)
        {
            GridHitInfo my_tempHitInfo = personList_gridView.CalcHitInfo(new Point(e.X, e.Y));
            if (e.Button == MouseButtons.Left && my_tempHitInfo.RowHandle >= 0)
                //判断鼠标左键并且选择为行内容         
                my_hitInfo = my_tempHitInfo;
            else
                my_hitInfo = null;
            
        }


        //鼠标移动,拖拽内容到
        private void personList_gridView_MouseMove(object sender, MouseEventArgs e)
        {
            if (my_hitInfo != null && e.Button == MouseButtons.Left)
            {
                Rectangle my_rectangle = new Rectangle(new Point(
                   my_hitInfo.HitPoint.X - SystemInformation.DragSize.Width / 2,
                   my_hitInfo.HitPoint.Y - SystemInformation.DragSize.Height / 2),
                   SystemInformation.DragSize);
                if (!my_rectangle.Contains(new Point(e.X, e.Y)))
                {
                    DataRow my_dataRow = personList_gridView.GetDataRow(my_hitInfo.RowHandle);
                    this.personList_gridControl.DoDragDrop(my_dataRow, DragDropEffects.Copy);
                    
                }
            }
        }

        private void group_gridControl_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;           

        }


        //拖拽完成
        private void group_gridControl_DragDrop(object sender, DragEventArgs e)
        {
            //得到要拖拽到的位置 
            Point my_tempPoint = this.group_gridControl.PointToClient(new Point(e.X, e.Y));
            GridHitInfo my_tempHit = this.group_gridView.CalcHitInfo(new Point( my_tempPoint.X, my_tempPoint.Y));
            
            if (my_tempHit.RowHandle > -1)//放置在行内容位置
            {
                //目标位置内容
                DataRow my_targetDataRow = group_gridView.GetDataRow(my_tempHit.RowHandle);
                //拖拽的内容
                DataRow my_sourceDataRow = e.Data.GetData(typeof(SALE.DATA.DataSet.View_contactGroupRow)) as DataRow;

                this.contactGroupTableAdapter.Fill(this.dataSet.contactGroup);
                //定义搜索主键值
                object[] my_dataKey = new object[] {Convert.ToString( my_targetDataRow["groupId"]).Trim(),Convert.ToInt16( my_sourceDataRow["contactId"])};
                DataRow my_searchDataRow = this.dataSet.contactGroup.Rows.Find(my_dataKey);//判断组中是否存在此记录

                if (my_searchDataRow == null)//组中不存在此记录,增加之
                {
                    DataRow my_NewRow = this.dataSet.contactGroup.NewRow();
                    my_NewRow["groupId"] = Convert.ToString(my_targetDataRow["groupId"]).Trim();
                    my_NewRow["contactId"] = Convert.ToInt16(my_sourceDataRow["contactId"]);
                    my_NewRow["groupType"] = my_groupType;
                    my_NewRow.EndEdit();
                    this.dataSet.contactGroup.Rows.Add(my_NewRow);//增加一个记录
                    this.contactGroupTableAdapter.Update(this.dataSet.contactGroup);

                                    
                    //再填充视图表              
                    this.view_contactGroupTableAdapter.Fill(this.dataSet.View_contactGroup);
                } 

                my_hitIndex = -1;
                this.group_gridView.RowStyle += this.group_gridView_RowStyle;//行效果去处
                //this.group_gridView.RowStyle += new DevExpress.XtraGrid.Views.Grid.RowStyleEventHandler(this.group_gridView_RowStyle);
                this.group_gridView.RefreshData(); 
            }         
            
        }



拖拽到目标是,目标行底色改变

//进入目标区域,鼠标滑动事件(提示当前的选项) 
        private void group_gridControl_DragOver(object sender, DragEventArgs e)
        {
            //得到拖拽时的位置 
            Point my_tempPoint = this.group_gridControl.PointToClient(new Point(e.X, e.Y));
            GridHitInfo my_tempHit = this.group_gridView.CalcHitInfo(new Point(my_tempPoint.X, my_tempPoint.Y));
            my_hitIndex = -1;
                    my_hitIndex = my_tempHit.RowHandle;
                    this.group_gridView.RowStyle += this.group_gridView_RowStyle;//行提示效果
                                 
                    this.group_gridView.RefreshData();               

           
        }
           
        //改变背景色 
        private void group_gridView_RowStyle(object sender, RowStyleEventArgs e)
        {
            if (e.RowHandle >= 0)
            {
                if (e.RowHandle == my_hitIndex)
                {
                    //改变背景色
                    e.Appearance.BackColor = Color.FromArgb(0x00, 0x00, 0x66);
                    e.Appearance.BackColor2 = Color.SeaShell;//双色,渐变色
                }
                else
                {
                    //复原背景色
                    e.Appearance.BackColor = this.group_gridView.Appearance.Row.BackColor;
 
                }
            }
        }


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值