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;
}
}
}