略過巡覽連結。
略過巡覽連結      
  如何在DefaultValidate中自訂動態的Validate訊息? 觀看回應
DefaultValidate只要在自定義方法中增加一行程式就可以了,比如:
public bool MyCheck(object val)
{
if(不符合條件)
{
(defaultValidate1.FieldItems[index] as FieldItem).WarningMsg = "Your Message";
// index是指第幾個欄位
return false;
}
else
return true;
}





  如何實現二個以上的欄位的重複檢查功能? 觀看回應
如果是多個key欄位的組合,直接設定DefaultValidate的DuplicateCheck和DuplicateCheckMode屬性就可以了,如果是Master設定為ByWhere,如果是Detail則設定為ByLocal。
如果不是key的欄位組合,可以在DefaultValidate中定義某一個代表性欄位,使用Validate自定義方法,如定一個MyCheck的方法,將訊息設定為”該資料已經重覆”,程式如下:
Public bool MyCheck(Object var)
{ String s=var.ToString();
DataSet ds = InfoDataSet1.Execute("select count (*) from Yourtable where Yourkey=’"+s+”’”);
if (Convert.ToInt16(ds.Tables[0].Rows[0][0]) > 0)
{

return false;
}
else
{
return true;
}
}





  如何在WinForm中對BindingSource進行過濾,並將符合條件的的記錄進行刪除? 觀看回應
可以用下列的程式來過濾與刪除資料,如下:
OEnergyDetail.MoveFirst();
int ibsOEDcount = ibsOEnergyDetail.Count;
int i = 0;
while (i< ibsOEDcount)
{
DataRowView dr = (DataRowView)ibsOEnergyDetail.Current;
if (dr["housecode"].ToString() == "D") // 將HouseCode為’D’的刪除
{
ibsOEnergyDetail.RemoveCurrent();
}
else
{
ibsOEnergyDetail.MoveNext();
}
i++;
}
ibsOEnergyDetail.EndEdit();




  如何設置某筆資料不可修改(如己確認的資料)? 觀看回應
1. ibsMaster設定AutoDisableControl
2. Navigator的BeforeItemClick事件:
if(e.ItemName=="Edit")
{
if((ibsMaster.Current as DataRowView).Row["AB001"].ToString() == "Y")
{
e.Cancel = true;
}
}
這樣就不會進入Edit狀態了。









  Windows的表單,如何在Apply時撿查自訂的條件,並使存檔無效? 觀看回應
可以在InfoNavigator的BeforeItemClick事件中去檢查,如果有異常可以用e.Cancel來取消存檔。
if (e.ItemName == "Apply")
{
if (not 你的條件)
e.Cancel = true; // 取消動作
}