這幾個月比較忙,也沒有想到寫些什么,所以停筆了一個多月。本想寫個Code生成技術呢,到Codesmith和T4就不知道該寫些什么示例,比較實用也大家比較感興趣的,所以暫時停下,如果關于Code生成技術你有什么好的想法,可以給我寫建議。
還是趕快進入正題,我以前寫過一個 Sql查詢生成模塊 。當時用的MDI窗體,始終感覺有些不如意,所以想重構下,特別有些sql性能和生成規(guī)則。所以就開發(fā)了今天要講的控件,我把它稱為TableView控件,名字和實際聯(lián)系不大,主要是剛開始時候沒有考慮這么多,就是為了Sql查詢重構而寫的,后來感覺在以后的代碼生成工具設計,Ui界面設計也會很有用,所以就把它獨立了出來做成控件(我覺得代碼生成工具最好還是像Linq一樣提供DBML設計界面)。先看運行結果:
設計時:
運行時:
這是一個帶有標題、圖標、關閉按鈕、可拖動的內容控件,其實相當于一個panel。我打算用它來取代以前的MDi窗體。現(xiàn)在唯一缺憾是在設計時還不能想Panel一樣直接拖動加入子控件,還是必須寫代碼,在后臺代碼添加
this.tableViewControl1.ContentControls.Add(new ListBox() { Dock = DockStyle.Fill });
checkedListBox1.Dock = DockStyle.Fill;
this.tableViewControl3.ContentControls.Add(checkedListBox1);
這個設計時,我正在設法解決。panel的設計時PanelControlDesigner繼承至ParentControlDesignr,到市里面的代碼很多,所以暫時想找一個更好的方式來實現(xiàn),如果你有好的建議,希望賜教。感覺這個設計時,有失大雅了,呵呵。在這個控件中設計為用戶控件,在控件添加了多個Panel:標題欄,內容框,右邊框和下邊框(為了可拖動改變Size)。
控件下載:TableViewControl