[C# WinForms] TableLayoutPanel (via Dot Net Perls, cu adăugiri)

TableLayoutPanel (panou de așezare în formă de tabel) poziționează controale. Cerem o interfață grafică pentru utilizator atractivă și funcțională care se redimensionează corect când utilizatorii schimbă dimensiunea ferestrei.

Mai întâi, pentru a face un TableLayoutPanel, extindeți cutia cu unelte (en. toolbox) din stânga. Faceți dublu-clic pe pictograma TableLayoutPanel din stânga, și apoi deschideți panoul Properties (tradus „Proprietăți”) din dreapta [jos].


Panou din 4 secțiuni. Ar trebui să vedeți un panou din 4 celule. Va trebui să modificați numărul de coloane și de rânduri. Și apoi veți putea schimba întinderile pe rânduri și întinderile pe coloane [proprietățile RowSpan și respectiv ColumnSpan].



Proprietăți. Anchor [proprietate, în acest caz, a controalelor din TableLayoutPanel, în română: ancore] este folosit pentru a alinia, a extinde, sau a umple un control. ColumnCount este folosit pentru a specifica numărul de coloane. RowCount este folosit pentru a specifica numărul de rânduri - adăugați unul pentru a obține un nou rând în partea de jos [a tabelului].




Anchor. Când faceți clic pe spațiul din dreapta lui Anchor în panoul de proprietăți din dreapta [când un control din TableLayoutPanel este selectat], veți vedea o cutie care seamănă cu un +. Faceți clic pe dreptunghiuri pentru a ancora de marginea respectivă [a celulei].




TextBox. Pentru a crea un TextBox multilinie care umple întreaga celulă, setați TextBox-ul ca multilinie. Adăugați Top (Sus) și Bottom (Jos) în meniul Anchor făcând clic pe partea de sus și pe partea de jos a +ului.
TextBox [EN]




Rezolvarea problemelor de schemă (en. layout). TableLayoutPanel poate rezolva multe dintre problemele dvs. de aliniere ale controalelor. TableLayoutPanel este flexibil și poate îmbunătăți cu foarte mult interfețele.

Cu toate acestea, el cere o etapă de planificare înainte de a trage controale în formularul (en. form) dvs. TableLayoutPanel este mai ușor de menținut. Această etapă de planificare merită făcută.

O schemă rigidă face viața grea pentru dvs., ca designer, și pentru utilizator care încearcă să folosească programul într-o puțin diferită configurație. TableLayoutPanel elimină aceste probleme.



Conținutul de mai sus este tradus de pe https://www.dotnetperls.com/tablelayoutpanel, cu adăugiri între paranteze drepte. Acesta este un link la documentația oficială a Microsoft pentru controlul container TableLayoutPanel. Am adăugat și capturi de ecran Visual Studio de-a lungul articolului și câteva mai jos.

Dacă faceți clic-dreapta pe spațiu neumplut al TableLayoutManager, puteți alege din meniul contextual opțiunea „Edit Rows and Columns...” (tradus „Editați Rânduri și Coloane...”) și vi se va deschide o fereastră de editare a unor proprietăți importante ale fiecărui rând/fiecărei coloană. Aceeași fereastră se deschide dacă dați clic pe butoanele din dreapta proprietății Columns sau Rows în panoul Properties după selectarea TableLayoutManager-ului.

Iată fereastra:


În această fereastră, în dreapta lui „Show:”, se poate selecta ce se afișează în ListBox-ul de sub „Show:”: Columns (coloanele) sau Rows (rândurile). Cu butoanele de sub ListBox se pot adăuga (Add), șterge (Delete) sau insera (Insert) coloane sau rânduri: Add adaugă un element (rând sau coloană) după toate elementele existente (ca ultim element al ListBox-ului), Insert inserează un element deasupra elementelor selectate (în total inserează unul) și Delete șterge elementele selectate. Se pot selecta mai multe elemente din ListBox folosind Ctrl + clic stânga. Butoanele Delete și Insert nu funcționează fără cel puțin un element selectat, spre deosebire de Add. Când nr. de coloane sau rânduri scade sub nr. necesar pt. afișarea controalelor deja inserate în TableLayoutManager, el revine automat la o valoare acceptabilă. În dreapta, se poate selecta cum se afișează în designer (și programul final) ce e selectat în ListBox: dacă Absolute este selectat, se specifică exact cât de lată să fie coloana (sau înalt, dacă e vorba de rând) printr-un nr. fix de pixeli. Dacă Percent este selectat, coloana va ocupa procentul introdus din lățimea totală a TableLayoutManager-ului (sau înălțimea, dacă e vorba de rând). Dacă AutoSize este selectat, TableLayoutManager-ul va cere fiecărui control, dintre celulele conținute de rândul selectat sau de coloana selectată, dimensiunile de care au nevoie și le va acorda acest spațiu dacă este posibil, și dacă nu, le va decupa.

În exemplul de mai sus, am setat Anchor la TableLayoutPanel (nu la unul din controalele din el) la „Top, Bottom, Left, Right” ceea ce înseamnă că se va redimensiona odată cu fereastra, păstrând aceeași distanță a laturilor sale față de laturile ferestrei ce-l conține.






La execuția programului, arată astfel:


După redimensionarea ferestrei, arată astfel:


Se observă cum TextBox-ul multilinie se întinde pe toată înălțimea celulei în care este pus.

Niciun comentariu:

Trimiteți un comentariu