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