使用C1TrueDbGrid部分功能
这是普通界面,最上面的一个是过滤条 filterBar,设备类型点需后就是一个下拉菜单,实现很简单
看下面filterbar的功能
验证用户输入
下面是实现代码
//下拉菜单的实现代码,,还需要在C1TrueDbGrid列设计器里将"设备类型"的Translate属性设置为true,它是一个子属性
C1.Win.C1TrueDBGrid.ValueItemCollection v = this.grid.Columns["设备类型"].ValueItems.Values;
v.Clear();
foreach (MCUDS.MCD_ZFTYPERow row in mcuds1.MCD_ZFTYPE)
{
v.Add(new C1.Win.C1TrueDBGrid.ValueItem(row.类型代码.ToString(),row.仪器类型));
}
//用户编辑数据前触发的事件
private void grid_BeforeColEdit(object sender, C1.Win.C1TrueDBGrid.BeforeColEditEventArgs e)
{
if (e.Column.Name == "设备类型")
{
grid.Splits[0].DisplayColumns[e.ColIndex].DataColumn.ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.ComboBox;
}
}
//编辑后触发的事件
private void grid_AfterColEdit(object sender, C1.Win.C1TrueDBGrid.ColEventArgs e)
{
grid.Splits[0].DisplayColumns["设备类型"].DataColumn.ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.Normal;
}
//编辑完后更新数据前触发的事件
private void grid_BeforeColUpdate(object sender, C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs e)
{
if (e.Column.Name == "温度计算" || (e.Column.Name == "成果计算"))
{
DataRowView dv = (DataRowView)grid[grid.Row];
string tstring = dv["温度计算"].ToString();
string vstring = dv["成果计算"].ToString();
string currentsb = dv["csbmc"].ToString();
if (e.Column.Name == "温度计算")
{
tstring = grid.Columns[e.ColIndex].Value.ToString();
}
else
{
vstring = grid.Columns[e.ColIndex].Value.ToString();
}
bool cancel = isValidCString(new string[] { tstring, vstring }, currentsb);
e.Cancel = !cancel; //e.Cancel=true的话,更新不成功,光标重新锁定的编辑的单元格,
}
}
//删除行前的提示
private void grid_BeforeDelete(object sender, C1.Win.C1TrueDBGrid.CancelEventArgs e)
{
if (MessageBox.Show(string.Format("确定要删除设备{0}及其所有数据吗?", grid[grid.Row, "设备名称"]), "?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
== DialogResult.OK)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
//删除一行的代码
if (grid.SelectedRows.Count > 0)
{
int rowIndex= grid.SelectedRows[0];
grid.Bookmark=rowIndex;
if (MessageBox.Show(string.Format("确定要删除设备{0}及其所有数据吗?", grid[rowIndex, "设备名称"]), "?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
== DialogResult.OK)
{
grid.Delete();
}
grid.SelectedRows.Clear();
}