地磅称量系统之(56) 界面层应用验证规则
来源:互联网 发布:魔兽世界3.35数据库 编辑:程序博客网 时间:2024/06/11 11:00
让知识更加联贯 让技术走进生活
我的博客 我的程序 我的网络
------郑紫至
E-mail:zhengzizhi@yahoo.com.cn
地磅称量系统
56. 从ToolBox中拖放一个ErrorProvider控件放到FrmWtBill界面上并将它的DataSource
属性设置成bindingSource1 接下来就是写代码了添加一个DisplayErrors()方法
然后改一下button1Save_Click内的代码就OK啦,完整代码如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using LWSMapping;
using System.Linq;
namespace WinApp
{
public partial class FrmWtBill : BaseForm.MyTemplateForm
{
public FrmWtBill()
{
InitializeComponent();
}
private WtBillMappingDataContext db;
private void FrmWtBill_Load(object sender, EventArgs e)
{
db = newWtBillMappingDataContext();
var WtBills =from a in db.WtBills
orderby a.BillNo
select a;
BindData();
this.bindingSource1.DataSource = WtBills;
//InitColumn()放在提供数据源控件之后初始化这样每列次序会按照我们预期的顺序排列。
//不使用编程方式来实现每列的属性也可以,在dataGridView1上直接编辑每列的属性。
InitColumn();
}
///<summary>
///将提供数据源的控件绑定到用户用来编辑数据的控件上
///</summary>
private void BindData()
{
this.txtBillNo.DataBindings.Add("Text",this.bindingSource1, "BillNo");
this.cmbVehicleNo.DataBindings.Add("Text",this.bindingSource1, "VehicleNo");
this.txtGrossTime.DataBindings.Add("Text",this.bindingSource1, "GrossTime");
this.txtTraceTime.DataBindings.Add("Text",this.bindingSource1, "TraceTime");
this.cmbCargoName.DataBindings.Add("Text",this.bindingSource1, "CargoName");
this.txtGrossWt.DataBindings.Add("Text",this.bindingSource1, "GrossWt");
this.txtTraceWt.DataBindings.Add("Text",this.bindingSource1, "TraceWt");
this.txtNetWt.DataBindings.Add("Text",this.bindingSource1, "NetWt");
this.cmbCustomerName.DataBindings.Add("Text",this.bindingSource1, "CustomerName");
this.txtOperator.DataBindings.Add("Text",this.bindingSource1, "Operator");
}
///<summary>
///使用编程的方式用来控制dataGridView控件的每列属性
///</summary>
private void InitColumn()
{
this.dataGridView1.Columns.Clear();
System.Windows.Forms.DataGridViewTextBoxColumn txtBoxColumn =null;
System.Windows.Forms.DataGridViewCheckBoxColumn checkBoxColumn =null;
checkBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
checkBoxColumn.DataPropertyName = "checkBox";
checkBoxColumn.Name = "checkBox";
checkBoxColumn.HeaderText = "打印";
checkBoxColumn.Width = 35;
checkBoxColumn.ReadOnly = false;
checkBoxColumn.DisplayIndex = 0;
this.dataGridView1.Columns.Add(checkBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "BillNo";
txtBoxColumn.Name = "BillNo";
txtBoxColumn.HeaderText = "单据编号";
txtBoxColumn.Width = 90;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 1;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "VehicleNo";
txtBoxColumn.Name = "VehicleNo";
txtBoxColumn.HeaderText = "车牌编号";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 2;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "GrossTime";
txtBoxColumn.Name = "GrossTime";
txtBoxColumn.HeaderText = "毛称时间";
txtBoxColumn.Width = 110;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 3;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "TraceTime";
txtBoxColumn.Name = "TraceTime";
txtBoxColumn.HeaderText = "皮称时间";
txtBoxColumn.Width = 110;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 4;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "CargoName";
txtBoxColumn.Name = "CargoName";
txtBoxColumn.HeaderText = "货物名称";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 5;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "GrossWt";
txtBoxColumn.Name = "GrossWt";
txtBoxColumn.HeaderText = "毛重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 6;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "TraceWt";
txtBoxColumn.Name = "TraceWt";
txtBoxColumn.HeaderText = "皮重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 7;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "NetWt";
txtBoxColumn.Name = "NetWt";
txtBoxColumn.HeaderText = "净重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 8;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "Unit";
txtBoxColumn.Name = "Unit";
txtBoxColumn.HeaderText = "单位";
txtBoxColumn.Width = 35;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 9;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "CustomerName";
txtBoxColumn.Name = "CustomerName";
txtBoxColumn.HeaderText = "客户名称";
txtBoxColumn.Width = 120;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 10;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName = "Operator";
txtBoxColumn.Name = "Operator";
txtBoxColumn.HeaderText = "司称人员";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly = true;
txtBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 11;
this.dataGridView1.Columns.Add(txtBoxColumn);
}
private void button1New_Click(object sender, EventArgs e)
{
this.bindingSource1.AddNew();
}
private void button1Modify_Click(object sender, EventArgs e)
{
//修改数据的代码不需要实现
}
private void button1Delete_Click(object sender, EventArgs e)
{
if (DeleteConfirmMsg("您真的要删除这条数据吗?","确认信息"))
{
this.bindingSource1.RemoveCurrent();
button1Save_Click(null,null);
}
}
private void button1Query_Click(object sender, EventArgs e)
{
}
private void button1Print_Click(object sender, EventArgs e)
{
}
//保存按钮界面上看不到,可以在属性下拉列表中找到它,双击button1Save的Click事件生成
private void button1Save_Click(object sender, EventArgs e)
{
this.Validate();
this.bindingSource1.EndEdit();
try
{
db.SubmitChanges();
MessageBox.Show("您的数据已经成功更新");
}
catch (ValidationException ex)
{
this.DisplayErrors();
MessageBox.Show("在数据提交保存之前请更正出现的错误");
}
}
//取消按钮界面上看不到,可以在属性下拉列表中找到它,双击button1Cancel的Click事件生成
private void button1Cancel_Click(object sender, EventArgs e)
{
this.bindingSource1.CancelEdit();
}
private void DisplayErrors()
{
this.errorProvider1.UpdateBinding();
this.dataGridView1.Refresh();
if (this.bindingSource1.Position > -1)
{
WtBill currentWtBill = (WtBill)(bindingSource1.Current);
if (!currentWtBill.HasErrors)
{
for (int i = 0; i <this.bindingSource1.Count - 1; i++)
{
WtBill _WtBill = (WtBill)(bindingSource1[i]);
if (_WtBill.HasErrors)
{
this.bindingSource1.Position = i;
break;
}
}
}
}
}
}
}
- 地磅称量系统之(56) 界面层应用验证规则
- 地磅称量系统之(35~36)界面层使用BindingSource控件绑定对象数据源
- 地磅称量系统之(55) 扩展LINQ to SQL Classes将数据表映射成对象后不具有的验证规则
- 地磅称量系统之(40) 实现称量管理界面上的添加、修改、删除、保存、取消按钮的代码
- 地磅称量系统之(10~11)设计用户操作数据的界面控件布局
- 地磅称量系统之(51)应用自己创建的Icon文件作为位图
- 地磅称量系统之(58) 应用自定义的LCD控件(包括测试的效果图)
- 地磅称量系统之(1)创建空白解决方案
- 地磅称量系统之(2~3)创建第一个类库
- 地磅称量系统之(6)让类库编译成dll文件
- 地磅称量系统之(7~9)添加继承窗体
- 地磅称量系统之(27~29)实现主界面显示用户的登录信息和日期时间星期的代码
- 地磅称量系统之(60) 接收地磅发送过来的数据显示在LCD上
- 地磅称量系统之(14)创建地磅系统的数据库、表以及新增、修改、删除的存储过程
- 地磅称量系统之(24~26)创建一个名称为WinApp的Windows应用程序作为启动项目并且设置主界面上控件的属性
- 地磅称量系统之(4~5)在类库中创建第一个BaseForm
- 地磅称量系统之(12)设计用户编辑数据按钮显示出来的操作风格
- 地磅称量系统之(13)让所有继承BaseForm的窗体都拥有用户信息
- 穷学生自白:爱情如此奢侈 穷孩子哪有爱的能力
- 商业周刊:苹果携iPhone进军企业市场
- mscomm32.ocx注册
- 轻松解决网络典型故障
- python:目录与文件操作
- 地磅称量系统之(56) 界面层应用验证规则
- javascript 闭包
- 我的Websphere Portal升级的艰难之旅
- 打开生命的栅栏 或许空空荡荡
- 开始运行命令集合分类:电脑知识
- 关闭网络端口分类:电脑知识
- 电脑故障
- 汽车诊断系统code
- javascript进度条2