Acest tip de coloane nu este generat automat atunci când legați date, trebuie să creați aceste coloane manual și să le legați manual de date.
Pentru a procesa clicul pe link, trebuie să creați și să conectați dispozitivul de tratare a evenimentelor CellContentClick pentru grilă. În acest caz, numai coordonatele celulei sunt transferate, astfel încât datele în sine vor trebui extrase manual.
DataGridViewButtonColumn
De fapt, paragraful anterior despre o celulă cu o legătură ar putea fi pur și simplu copiat și lipit aici. Din punct de vedere funcțional, aceste două tipuri de celule sunt absolut identice - zona activă, când se face clic, se întâmplă ceva. Această celulă încearcă cu succes să pretindă că este un buton "adult" și chiar atrage cu onestitate momentele de presare și eliberare. Schema de lucru este aceeași cu cea a DataGridViewLinkColumn. dar trebuie să procesați evenimentul CellClick.
Tipul obiectului pe care celulă îl așteaptă în mod prestabilit atunci când stabilește o nouă valoare prin proprietatea Valoare. bool / CheckState / null.
Are capacitatea de a edita, dar spre deosebire de DataGridViewTextBoxColumn nu utilizează niciun control special pentru ao edita. O celulă de acest tip este întotdeauna în faza de editare - DataGridView.IsCurrentCellInEditMode pentru ea va reveni întotdeauna adevărat. Cu proprietatea ThreeState pentru o celulă, puteți activa suportul în trei moduri (activat, dezactivat și nedefinit). Implicit, modul este în două poziții. În modul cu trei poziții, starea non-deterministă corespunde valorilor CheckState.Indeterminate. null sau 2.
DataGridViewComboBoxColumn
Fără îndoială, cel mai complex dintre toate tipurile de celule încorporate. DataGridViewTextBoxColumn similar cu ceea ce are faza de editare specială la care se utilizează un control de editare de tip DataGridViewComboBoxEditingControl. Este clar că, în general, o celulă de acest tip încearcă să "prefacă" cu caseta combo obișnuită. Acest lucru este posibil numai parțial, deoarece un combobox real poate avea o parte text pentru introducerea directă a unei valori. Aceeași celulă funcționează strict în modul ComboBoxStyle.DropDownList. adică nu există o intrare directă, ci doar o selecție din listă. Prin abonarea la eveniment DataGridView EditingControlShowing poate face controlul de editare pentru a afișa același câmp de introducere a textului direct (modul ComboBoxStyle .DropDown). Dar acest lucru va fi deja un fel de "hacking ușor". Folosind proprietatea AutoComplete (bool), puteți activa funcționalitatea automată completă încorporată a valorilor de intrare.
proprietate DropDownWidth (tip int) setați lățimea listei drop-down, și MaxDropDownItems proprietate de același tip, în același timp, să limiteze numărul de înregistrări afișate (în cazul în care înregistrările este mai mare decât cea prevăzută pentru această proprietate - o listă drop-down va fi o bară de defilare verticală). Dar, probabil, cea mai importantă proprietate pentru acest tip de celule, împreună cu valoarea - nu a expirat în importanță. este proprietatea Items. care returnează o ObjectCollection. în care sunt introduse elementele din lista derulantă. Aceasta vă permite să completați manual lista.
Este demn de remarcat faptul că DataGridViewComboBoxCell își susține propria legătură cu sursa, independentă de grila pe care o conține! Pentru aceasta, are proprietățile DataSource. DisplayMember și ValueMember. Apoi, în cel de-al doilea caz, proprietatea Value nu întoarce ceea ce văd utilizatorul (adică nu elementul de afișare al elementului selectat), ci elementul ValueMember al acestui element.
DataGridViewImageColumn
O altă celulă care nu poate fi editată vă permite să afișați imagini și pictograme. O celulă de acest tip oferă o serie de proprietăți suplimentare, printre care sunt ImageLayout (DataGridViewImageCellLayout ia una dintre valorile de enumerare) determină modul în care celula se va potrivi în dimensiunea imaginii nu coincide cu celula dreptunghiulară. De asemenea notez ValueIsIcon (tip bool). Poate fi setat la adevărat. dacă doriți să desenați un obiect de tip Icon. mai degrabă decât tastați Imagine.
Datorită faptului că ImageConvertor TypeConvertor este asociat cu tipul de imagine. ca valoare a celulelor de acest tip, puteți utiliza o matrice octet care conține imaginea serializată. Această circumstanță este deosebit de importantă atunci când legați o coloană de acest tip la sursa de date de bază de date, deoarece aceasta din urmă stochează de obicei imaginile exact ca o serie de octeți.