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