PropertyGrid空間開發總結五

2021-04-19 02:43:52 字數 891 閱讀 3720

屬性值的校對:

屬性值的校對主要包擴三個方面。首先,需要保證使用者輸入的值型別正確。其次,也是比較常用的,判斷輸入值後是否超出規定的範圍。最後,在一些情況下,要求資料具有指定的格式,例如小數點後精確到幾位的浮點數等。第乙個問題,值的型別在使用者輸入的時候,控制項本身就提供了很好的型別判斷,所以,一般情況下不需要程式設計師進行判斷。而後兩個問題,控制項提供的支援就非常有限了,需要程式設計師針對具體需求進行具體設計。

最近一直在使用attribute類,所以一上來先想去找乙個校對用的屬性。很可惜,沒有找到。於是考慮其他方法,由於是由控制項接收使用者輸入,所以首先想到了事件響應。也就是在使用者改變了屬性的取值時觸發事件,並根據需求對屬性值進行處理。實踐證明確實可行。然而專案中的類別眾多,其屬性也多寡不一,屬性的總數就會很大。如果全部用事件響應來處理,就需要對每個類別的每個屬性進行判別區分。如果再牽扯上本地化的問題,就更加複雜(因為筆者是通過發生改變的值對應lable的字串辨別該值是什麼屬性的,而本地化後該值存在多種可能。。。)。

另外還有一種簡單的方法就是在get/set方法裡加入if判斷。這樣控制項會自動根據其範圍作出反應。同樣,該方法存在缺點。就是它不能易根據模式改變判定範圍。同時,無法有效格式化資料(因為0.00會被自動轉換回0)。

後來,無意在網上看到一段**。通過自定義attribute類實現了較對。可惜沒有具體實現,判定後的操作怎麼實現想不通。例如,發現至超出範圍後,怎麼將之更新回原先的取值。

這裡針對前兩種方法以**示例:(通過自定義屬性類實現的方法稍後更新)

}       

private static bool isintvalid( int i)

public class test

private int i;

public int i//屬性體內判斷

getset    

}

PropertyGrid中的屬性讀取

public class basesettings settingfilename is a file whose extension is xml private string settingfilename else xml name public basesettings string set...

線段樹及空間開4倍

下面我們來講解線段樹 線段樹有許多應用,給出乙個序列,可以在任何乙個區間內找到最大,和最小值。可以求區間和等等等等。那麼應用就不多說了。畢竟能到這裡來的我相信都是為了a題,並且了解線段樹的吧!廢話不多說了。線段樹是一種二叉搜尋樹,與區間樹相似,它將乙個區間劃分成一些單元區間,每個單元區間對應線段樹中...

PropertyGrid 用法 下拉框篇

如果有在propertygrid中用下拉框的朋友有困難的,請參見下面。並希望高手提出意見,說明 下面的 是不能run的。這是直接copy了我的東西,想用的朋友,需要修一些地方.using system using system.text using system.reflection using s...