Atsiliepimai

C # programavimo pamoka - Išplėstinių formų programavimas C # programoje

C # programavimo pamoka - Išplėstinių formų programavimas C # programoje



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

01of 10

Valdiklių naudojimas „Winforms“ - „Advanced“

Šiame C # programavimo vadove aš susitelksiu į sudėtingesnius valdiklius, tokius kaip „ComboBoxes“, „Grid“ ir „ListViews“, ir parodysiu, kaip greičiausiai juos naudosite. Neliesiu duomenų ir neįpareigoju iki vėlesnės pamoka. Pradėkime nuo paprasto valdymo - „ComboBox“.

„ComboBox Winform Control“

„Combo“ širdyje yra daiktų kolekcija, o paprasčiausias būdas tai užpildyti yra mesti kombo ekrane, pasirinkti ypatybes (jei nematote ypatybių langų, viršutiniame meniu spustelėkite „Peržiūrėti“, o tada „Ypatybių langas“), suraskite elementus ir spustelėkite mygtuką elipsės. Tada galite įvesti eilutes, sudaryti programą ir patraukti jungtį žemyn, kad pamatytumėte pasirinkimą.

  • Vieną
  • Du
  • Trys

Dabar sustabdykite programą ir pridėkite dar keletą skaičių: keturi, penki ... iki dešimties. Vykdydami pamatysite tik 8, nes tai yra numatytoji „MaxDropDownItems“ vertė. Nedvejodami nustatykite jį į 20 ar 3 ir paleiskite, kad pamatytumėte, ką jis daro.

Erzina, kad atidarius ji sako „comboBox1“ ir jūs galite ją redaguoti. Tai nėra tai, ko mes norime. Suraskite „DropDownStyle“ nuosavybę ir pakeiskite „DropDown“ į „DropDownList“ (tai yra junginys!). Dabar teksto nėra ir jo negalima redaguoti. Galite pasirinkti vieną iš skaičių, tačiau jis visada atidaromas tuščias. Kaip mes pasirenkame numerį, nuo kurio pradėti? Tai nėra savybė, kurią galite nustatyti projektavimo metu, tačiau pridėję šią eilutę tai padarysite.

„comboBox1.SelectedIndex“ = 0;

Pridėkite šią eilutę „Form1“ () konstruktoriuje. Jūs turite peržiūrėti formos kodą („Solution Explorer“ dešiniuoju pelės mygtuku spustelėkite From1.cs ir spustelėkite View Code. Rasti InitializeComponent (); pridėkite šią eilutę iškart po šios.

Jei kompiuteryje „DropDownStyle“ nuosavybę nustatysite kaip paprastą ir paleisite programą, nieko negausite. Nepasirinks, nespauskite ir neatsakys. Kodėl? Nes projektavimo metu turite patraukti apatinę tempimo rankeną ir padaryti visą valdiklį aukštesnį.

Šaltinio kodo pavyzdžiai

  • Atsisiųskite pavyzdžius (pašto kodas)

Kitame puslapyje : „Winforms ComboBoxes“ tęsinys

02of 10

Žiūrėjimas į „ComboBoxes“ tęsinys

2 pavyzdyje aš pervadinau „ComboBox“ į „combo“, pakeičiau „combo DropDownStyle“ atgal į „DropDown“, kad jį būtų galima redaguoti ir pridėjau mygtuką „Pridėti“, vadinamą „btnAdd“. Du kartus spustelėjau mygtuką „Pridėti“, kad sukurtų įvykio btnAdd_Click () įvykio valdiklį, ir pridėjau šią įvykių eilutę.

privati ​​negaliojanti „btnAdd_Click“ (objekto siuntėjas, „System.EventArgs e“)
{
combo.Items.Add (combo.Text);
}

Dabar, kai vykdote programą, įveskite naują numerį, sakykite „Vienuolika“ ir spustelėkite Pridėti. Įvykių tvarkytojas paima įvestą tekstą („combo.Text“) ir prideda jį prie „Combo“ daiktų kolekcijos. Spustelėkite „Combo“ ir dabar turime naują įrašą „Vienuolika“. Taip pridėsite naują eilutę prie „Combo“. Pašalinti vieną yra šiek tiek sudėtingiau, nes jūs turite surasti norimos pašalinti eilutės rodyklę, tada ją pašalinkite. Žemiau parodytas metodas „RemoveAt“ yra tai surinkimo metodas. jums tereikia nurodyti, kuris elementas pašalinamas iš parametro „Removeindex“.

„combo.Items.RemoveAt“ („RemoveIndex“);

pašalins eilutę iš „RemoveIndex“ padėties. Jei kombinuotame elemente yra n elementų, galiojančios vertės yra nuo 0 iki n-1. 10 elementų vertės 0–9.

Taikant metodą btnRemove_Click, teksto laukelyje ieškoma eilutė, naudojant

int RemoveIndex = combo.FindStringExact (RemoveText);

Jei nerandate teksto, grąžina -1, priešingu atveju grąžina eilutės 0 rodyklę į kombinuotą sąrašą. Taip pat yra perkrautas „FindStringExact“ metodas, leidžiantis nurodyti, iš kur pradedate paiešką, kad galėtumėte praleisti pirmąjį ir tt, jei turite kopijų. Tai gali būti naudinga norint pašalinti sąrašo dublikatus.

Spustelėjus btnAddMany_Click (), tekstas iš kombaino išvalomas, tada išvalomas kombo elementų rinkinio turinys, tada iškviečiamas combo.AddRange (norint pridėti eilutes iš reikšmių masyvo. Tai padaręs, kompo „SelectedIndex“ nustato į 0. Tai rodo pirmąjį elementą). Jei darote elementų papildymą ar naikinimą „ComboBox“, tada geriau sekti, kuris elementas yra pasirinktas. Nustačius „SelectedIndex“ į -1, paslėpsite pasirinktus elementus.

Mygtukas Pridėti daug išvalo sąrašą ir prideda 10 000 skaičių. Pridėjau „combo.BeginUpdate“ () ir „combo“, „EndUpdate“ () skambučius, kad būtų išvengta bet kokio „Windows“ mirgėjimo, bandančio atnaujinti valdymą. Mano trejų metų sename kompiuteryje reikia šiek tiek daugiau nei sekundės, kad 100 000 numerių būtų galima pridėti prie kompo.

Kitame puslapyje Žvelgiant į „ListViews“

03of 10

Darbas su „ListViews“ C # Winforms

Tai yra patogus valdymas lentelių duomenų rodymui be tinklelio sudėtingumo. Elementus galite rodyti kaip dideles ar mažas piktogramas, kaip piktogramų sąrašą vertikaliame sąraše arba naudingiausią kaip elementų ir paantraščių sąrašą tinklelyje. Štai ką mes čia ir padarysime.

Pametę „ListView“ formoje spustelėkite stulpelių ypatybę ir pridėkite 4 stulpelius. Tai bus „TownName“, „X“, „Y“ ir „Pop“. Nustatykite kiekvieno „ColumnHeader“ tekstą. Jei „ListView“ antraščių nematote (pridėję visas 4), nustatykite „ListView“ rodinio nuosavybę į „Išsami informacija“. Jei peržiūrėsite šio pavyzdžio kodą, tada eikite žemyn ten, kur sakoma „Windows Form Designer“ kodas, ir išplėskite regioną, kuriame matote kodą, sukuriantį „ListView“. Naudinga pamatyti, kaip sistema veikia, ir galite nukopijuoti šį kodą ir patys naudoti.

Kiekvieno stulpelio plotį galite nustatyti rankiniu būdu, perkeldami žymeklį virš antraštės ir vilkdami. Arba galite tai padaryti kodu, kuris matomas išplėtus formos kūrėjo regioną. Turėtumėte pamatyti tokį kodą:

Gyventojų stulpelyje Kodo pakeitimai atsispindi projektuotojui ir atvirkščiai. Atminkite, kad net jei nustatysite, kad nuosavybė „Užrakinta“ yra tikra, tai paveiks tik dizainerį, o vykdymo metu galite pakeisti stulpelių dydį.

„ListViews“ taip pat turi keletą dinaminių savybių. Spustelėkite (Dinaminės ypatybės) ir pažymėkite norimą nuosavybę. Kai nustatote ypatybę kaip dinamišką, ji sukuria XML .config failą ir prideda jį prie „Solution Explorer“.

Pakeitimai projektavimo metu yra vienas dalykas, bet tikrai turime tai padaryti, kai programa veikia. „ListView“ yra sudarytas iš 0 ar daugiau elementų. Kiekvienas elementas („ListViewItem“) turi teksto ypatybę ir posistemių rinkinį. Pirmame stulpelyje rodomas elemento tekstas, kitame stulpelyje rodomas „SubItem0.text“, tada „SubItem1.text“ ir pan.

Pridėjau mygtuką eilutei papildyti ir miesto pavadinimo redagavimo lauką. Įveskite bet kurį pavadinimą lauke ir spustelėkite Pridėti eilutę. Į „ListView“ pridedama nauja eilutė su miesto pavadinimu, pateiktu pirmame stulpelyje, o kiti trys stulpeliai („SubItems0… 2“) užpildomi atsitiktiniais skaičiais (paverčiamais eilutėmis), pridedant šias eilutes prie jų.

Atsitiktinis R = naujas Atsitiktinis ();
ListViewItem LVI = list.Items.Add (tbName.Text);
LVI.SubItems.Add (R.Kitas (100) .ToString ()); // 0… 99
LVI.SubItems.Add (R.Kitas (100) .ToString ());
LVI.SubItems.Add (((10 + R.Kitas (10)) * 50) .ToString ());

Kitame puslapyje : „ListView“ atnaujinimas

04of 10

Programiškai atnaujinkite „ListView“

Pagal numatytuosius nustatymus, kai sukuriamas „ListViewItem“, jis turi 0 pogrupių, todėl juos reikia pridėti. Taigi ne tik jūs turite pridėti „ListItems“ prie „ListView“, bet ir prie „ListItem“ turite įtraukti „ListItem.SubItems“.

„ListView“ elementų pašalinimas programiškai

Dabar nustatykite „ListView Multiselect“ nuosavybę kaip „false“. Mes norime pasirinkti tik vieną elementą vienu metu, tačiau jei norite pašalinti daugiau vienu kartu, jis yra panašus, išskyrus tai, kad jūs turite pereiti atgal. (Jei linijuojate įprasta tvarka ir ištrinate elementus, kiti elementai nėra sinchronizuoti su pasirinktais indeksais).

Dešiniojo mygtuko paspaudimo meniu dar neveikia, nes jame nėra meniu elementų, kuriuos būtų galima rodyti. Taigi dešiniuoju pelės mygtuku spustelėkite „PopupMenu“ (žemiau formos) ir formos viršuje, kur atsiranda normalus meniu redaktorius, pasirodys kontekstinis meniu. Spustelėkite jį ir ten, kur rašoma „Type Here“, įveskite „Remove Item“. Ypatybių lange bus rodoma „MenuItem“ taip pervadinta, kad „mniRemove“. Dukart spustelėkite šį meniu elementą ir turėtumėte gauti meniuItem1_Click įvykių tvarkyklės kodo funkciją. Pridėkite šį kodą, kad jis atrodytų taip.

Jei pamiršote pašalinti elementą, tiesiog spustelėkite „PopupMenu“ valdiklį, esantį formos „Designer“ formoje. Tai sugrįš į vaizdą.

„private void menuItem1_Click“ (objekto siuntėjas, „System.EventArgs e“)
{
ListViewItem L = list.SelectedItems0;
if (L! = nulis)
{
list.Items.Remove (L);
}
}

Tačiau jei jūs jį paleisite ir nepridėsite elemento bei jį pasirinksite, kai dešiniuoju pelės mygtuku spustelėsite meniu ir spustelėsite Pašalinti elementą, jis suteiks išimtį, nes nėra pasirinkto elemento. Tai netinkamas programavimas, todėl štai ką galite išspręsti. Du kartus spustelėkite iššokantį įvykį ir pridėkite šią kodo eilutę.

privati ​​tuštuma „PopupMenu_Popup“ (objekto siuntėjas, „System.EventArgs e“)
{
mniRemove.Enabled = (sąrašas.Pasirinkti elementai.Skaičius> 0);
}

Meniu įrašą Pašalinti elementą jis įgalina tik tada, kai yra pasirinkta eilutė.

Kitame puslapyje

: „DataGridView“ naudojimas

10of 10

Kaip naudotis „DataGridView“

„DataGridView“ yra pats sudėtingiausias ir naudingiausias komponentas, nemokamai teikiamas naudojant „C #“. Jis veikia su abiem duomenų šaltiniais (t. Y. Duomenimis iš duomenų bazės) ir be (ty duomenimis, kuriuos pridedate programiškai). Likusią šios mokymo programos dalį aš parodysiu naudodamas ją be duomenų šaltinių. Paprastesniems ekrano poreikiams galite rasti paprastesnį „ListView“.

Ką gali padaryti „DataGridView“?

Jei naudojote senesnį „DataGrid“ valdiklį, tai yra tik vienas iš steroidų: jis suteikia daugiau integruotų stulpelių tipų, gali dirbti su vidiniais ir išoriniais duomenimis, labiau pritaikyti ekraną (ir įvykius) ir suteikia daugiau valdymo galimybių. virš ląstelių tvarkymo šaldančiomis eilėmis ir kolonomis.

Kurdami formas su tinklelio duomenimis, dažniausiai nurodote skirtingus stulpelių tipus. Gali būti, kad viename stulpelyje yra žymimieji laukeliai, kitoje - tik skaitomas arba taisomas tekstas, taip pat kursų numeriai. Šie stulpelių tipai taip pat paprastai yra išlyginami su skaičiais, kurie paprastai sulygiuojami dešinėje, taigi dešimtainiai taškai sutampa. Stulpelio lygiu galite pasirinkti mygtukus, mygtukus, žymimąjį laukelį, „ComboBox“, vaizdą, „TextBox“ ir nuorodas. jei jų nepakanka, galite apibrėžti savo pasirinktinius tipus.

Lengviausias būdas pridėti stulpelius yra projektuojant IDE. Kaip mes matėme anksčiau, tai tiesiog rašo jums kodą ir keletą kartų tai padarius, galbūt norėsite patys pridėti kodą. Kai tai padarysite keletą kartų, jame bus įžvalgos, kaip tai padaryti programiškai.

Pradėkime pridėdami keletą stulpelių, įmeskite „DataGridView“ į formą ir spustelėkite mažąją rodyklę viršutiniame dešiniajame kampe. Tada spustelėkite Pridėti stulpelį. Atlikite tai tris kartus. Atsidarys dialogo langas Pridėti stulpelį, kuriame nustatysite stulpelio pavadinimą, stulpelio viršuje rodomą tekstą ir galėsite pasirinkti jo tipą. Pirmasis stulpelis yra jūsų vardas ir yra numatytasis „TextBox“ (dataGridViewTextBoxColumn). Antraštės tekstą taip pat nustatykite į savo vardą. Padarykite antrą stulpelį „Age“ ir naudokite „ComboBox“. Trečiasis stulpelis yra leidžiamas ir yra „CheckBox“ stulpelis.

Sudėję visus tris, turėtumėte pamatyti trijų stulpelių eilutę su kombainu viduryje (Amžius) ir žymimąjį langelį leidžiamame stulpelyje. Jei spustelėsite „DataGridView“, tada nuosavybės inspektoriuje turėtumėte surasti stulpelius ir spustelėti (kolekcija). Pasirodo dialogo langas, kuriame galite nustatyti kiekvieno stulpelio ypatybes, pvz., Atskiras langelio spalvas, patarimo tekstą, plotį, mažiausią plotį ir tt. Jei sudarysite ir vykdysite, pastebėsite, kad galite pakeisti stulpelio plotį ir vykdymo laiką. Pagrindinio „DataGridView“ turto inspektoriuje galite nustatyti „AllowUser“, kad „colių stulpelių dydis“ būtų klaidingas, kad to išvengtumėte.

Kitame puslapyje:

Eilučių pridėjimas prie „DataGridView“

06of 10

Eilių įtraukimas į „DataGridView“ programiškai

Mes pridėsime eilutes prie „DataGridView“ valdiklio kode, o pavyzdžių failas „ex3.cs“ turi šį kodą. Pirmiausia pridėdami „TextEdit“ laukelį, „ComboBox“ ir mygtuką prie formos, ant kurios yra „DataGridView“. „DataGridView“ ypatybę „AllowUserto AddRows“ nustatykite kaip „false“. Aš taip pat naudoju etiketes ir vadinu „combobox cbAges“, mygtuku „btnAddRow“ ir „TextBox tbName“. Aš taip pat pridėjau formos uždarymo mygtuką ir du kartus spustelėjau ją, kad būtų sukurtas „btnClose_Click“ įvykių tvarkytojo skeletas. Pridėjus ten žodį Close (), tai veikia.

Pagal numatytuosius nustatymus mygtukas Pridėti eilutę, įgalinta nuosavybė, pradedant nustatomas neteisingai. Mes nenorime pridėti jokių eilučių prie „DataGridView“, nebent lauke „Name TextEdit“ ir „ComboBox“ yra tekstas. Sukūriau metodą „CheckAddButton“ ir tada sugeneravau pavadinimo teksto redagavimo laukelį „Palikti įvykių tvarkytuvą“, dukart spustelėdamas šalia žodžio „Palikti“ ypatybėse, kai jis rodė įvykius. Ypatybių laukelyje tai parodyta aukščiau esančiame paveikslėlyje. Pagal numatytuosius nustatymus lauke Ypatybės rodomos ypatybės, tačiau spustelėję žaibo mygtuką galite pamatyti įvykių tvarkytojus.

privati ​​negaliojanti „CheckAddButton“ ()
{
btnAddRow.Enabled = (tbName.Text.Length> 0&&cbAges.Text.Length> 0);
}

Vietoj to, jūs galėjote naudoti įvykį „TextChanged“, tačiau tai paskambins „CheckAddButton ()“ metodui kiekvieną kartą paspaudus, o ne tada, kai valdiklis bus paliktas, t. Y., Kai kitas valdymas padidins dėmesį. „Ages Combo“ aš naudojau „TextChanged“ įvykį, bet pasirinkau įvykių tvarkyklę „tbName_Leave“, o ne dukart spustelėkite, kad sukurtumėte naują įvykių tvarkytuvą.

Ne visi įvykiai yra suderinami, nes kai kurie įvykiai suteikia papildomų parametrų, tačiau jei galite pamatyti anksčiau sugeneruotą tvarkyklę, tuomet taip galite naudoti. Tai dažniausiai teikia pirmenybę. Galite turėti atskirą įvykių tvarkytuvą kiekvienai jūsų naudojamai kontrolei arba bendrinti įvykių tvarkytuvus (kaip aš padariau), kai jie turi bendrą įvykio parašą, t. Y. Parametrai yra vienodi.

„DataGridView“ komponentą pervadinau į „dGView“ dėl trumpumo ir du kartus spustelėjau „AddRow“, kad būtų sugeneruotas įvykių tvarkytojo skeletas. Šis žemiau pateiktas kodas prideda naują tuščią eilutę, gauna šios eilutės rodyklę (ji yra „RowCount-1“, nes ji buvo ką tik pridėta, o „RowCount“ pagrįsta 0), tada prieina prie šios eilutės per savo rodyklę ir nustato tos eilutės langelių reikšmes stulpeliams. Tavo vardas ir amžius.

„dGView.Rows.Add“ ();
int „RowIndex“ = „dGView.RowCount“ - 1;
„DataGridViewRow R“ = „dGView.RowsRowIndex“;
R.Cells „YourName“ .Value = tbName.Text;
R.Cells „Age“ .Value = cbAges.Text;

Kitame puslapyje: Konteinerių valdikliai

10 iš 10

Konteinerių su valdikliais naudojimas

Projektuodami formą, turėtumėte galvoti apie tarą ir valdiklius bei tai, kurias kontrolės grupes reikėtų laikyti kartu. Šiaip ar taip, Vakarų kultūrose žmonės skaito nuo viršaus į kairę į apačią į dešinę, kad būtų lengviau skaityti.

Tara yra bet kuris valdiklis, kuriame gali būti kitų valdiklių. Įrankių dėžėje randami skydai, „FlowLayoutpanel“, „SplitContainer“, „TabControl“ ir „TableLayoutPanel“. Jei nematote priemonių rinkinio, naudokite meniu Rodymas ir jį rasite. Konteineriai laiko valdiklius kartu, ir jei jūs perkelsite ar pakeisite konteinerio dydį, tai turės įtakos valdiklių išdėstymui. Tiesiog perkelkite valdiklius virš konteinerio „Formos dizainere“ ir jis atpažins, kad konteineris dabar yra atsakingas.

Plokštės ir grupės dėžutės

Skydas yra panašus į „GroupBox“, tačiau „GroupBox“ negali slinkti, tačiau gali rodyti antraštę ir pagal numatytuosius nustatymus turi kraštinę. Plokštės gali turėti kraštus, bet pagal numatytuosius nustatymus jų neturi. Aš naudoju „GroupBox“, nes jie atrodo gražiau, ir tai svarbu, nes:

  • Boltono dėsnis - Vartotojai paprastai įvertins gražiai atrodančią programinę įrangą su aukštesnėmis klaidomis nei paprasčiausia atrodanti programinė įranga be klaidų!

Plokštės yra patogios ir konteineriams grupuoti, todėl skydelyje gali būti dvi ar daugiau „GroupBox“.

Štai patarimas darbui su konteineriais. Išmeskite suskaidytą konteinerį ant formos. Spustelėkite kairįjį, tada dešinįjį, skydelius. Dabar pabandykite pašalinti „SplitContainer“ iš formos. Sunku, kol dešiniuoju pelės mygtuku spustelėkite vieną iš skydų ir tada spustelėkite Pasirinkti „SplitContainer1“. Kai viskas bus pasirinkta, galite ją ištrinti. Kitas būdas, kuris galioja visiems valdikliams ir konteineriams paspauskite Esc klavišą pasirinkti tėvą.

Konteineriai taip pat gali lizdus laikyti vienas kito viduje. Tiesiog vilkite mažą ant didesnio viršaus ir trumpam pasirodys plona vertikali linija, rodanti, kad viena dabar yra kitos viduje. Vilkdami pirminį konteinerį vaikas bus perkeltas su juo. 5 pavyzdys parodo tai. Pagal numatytuosius nustatymus šviesiai rudas skydelis nėra talpyklos viduje, taigi, kai spustelėsite mygtuką perkelti, „GroupBox“ bus perkelta, tačiau skydo nėra. Dabar vilkite skydelį virš „GroupBox“, kad jis būtų visiškai „Groupbox“ viduje. Kai šį kartą sukompiliuosite ir paleisite, spustelėję mygtuką Perkelti, abu judate.

Kitame puslapyje: „TableLayoutPanels“ naudojimas

08of 10

„TableLayoutPanels“ naudojimas

„TableLayoutpanel“ yra įdomus konteineris. Tai lentelės struktūra, išdėstyta kaip 2D langelių tinklelis, kuriame kiekvienoje ląstelėje yra tik vienas valdiklis. Ląstelėje negali būti daugiau nei vienas valdiklis. Galite nurodyti, kaip lentelė auga, kai pridedama daugiau valdiklių arba net jei ji neauga. Atrodo, kad ji yra modeliuojama HTML lentelėje, nes ląstelės gali apimti stulpelius ar eilutes. Netgi vaikų tvirtinimo elementų tvirtinimas konteineryje priklauso nuo „Margin“ ir „Padding“ nustatymų. Daugiau apie inkarus pamatysime kitame puslapyje.

Ex6.cs pavyzdyje aš pradėjau nuo pagrindinės dviejų stulpelių lentelės ir nurodiau per dialogo langą Valdymo ir eilučių stiliai (pažymėkite valdiklį ir spustelėkite mažą dešinįjį nukreipimo trikampį, esantį netoli viršutinės dešinės dalies, kad pamatytumėte užduočių sąrašą ir spustelėkite paskutinis), kad kairysis stulpelis sudaro 40%, o dešinysis stulpelis - 60% pločio. Tai leidžia nurodyti stulpelio plotį absoliučiais pikseliais, procentais arba galite tiesiog leisti jį automatizuoti. Greitesnis būdas patekti į šį dialogą yra tiesiog spustelėjus Kolekcija, esančią šalia stulpelių, esančiame ypatybių lange.

Pridėjau mygtuką „AddRow“ ir palikau „GrowStyle“ nuosavybę su numatytąja „AddRows“ verte. Kai lentelė užpildoma, pridedama dar viena eilutė. Arba galite nustatyti jo reikšmes kaip „AddColumns“ ir „FixedSize“, kad jis nebegalėtų augti. „Ex6“ spustelėjus mygtuką Pridėti valdiklius, jis tris kartus iškviečia „AddLabel“ () metodą ir „AddCheckBox“ () kartą. Kiekvienas metodas sukuria valdymo pavyzdį ir iškviečia tblPanel.Controls.Add () Pridėjus antrąjį valdiklį, trečiasis valdiklis sukelia lentelės augimą. Paveikslėlyje tai parodyta po to, kai vieną kartą spustelėjus mygtuką „Pridėti valdiklį“.

Jei jums įdomu, kur pateiktos „AddCheckbox“ () ir „AddLabel“ () metodų, iš kurių vadinasi, numatytosios vertės, valdiklis iš pradžių buvo rankiniu būdu pridedamas prie dizainerio lentelės, tada buvo sukurtas kodas, skirtas ją sukurti ir inicijuoti. iš šio regiono. Inicializacijos kodą rasite „InitializeComponent“ metodo skambutyje, kai spustelėsite toliau esančio regiono kairėje esantį pliusą +:

„Windows Form Designer“ sugeneruotas kodas

Kitame puslapyje: Kai kurios bendrosios savybės, kurias turėtumėte žinoti

09of 10

Bendros valdymo savybės, kurias turėtumėte žinoti

Vienu metu galite pasirinkti kelis valdiklius, laikydami nuspaudę klavišą „Shift“, kai pasirenkate antrąjį ir paskesnius valdiklius, net skirtingų tipų valdiklius. „Ypatybių“ lange rodomos tik abiems būdingos savybės, todėl galite nustatyti jas visas į vienodo dydžio, spalvų ir teksto laukus ir tt. Net tuos pačius įvykių tvarkytuvus galima priskirti keliems valdikliams.

Inkarai sveria

Priklausomai nuo naudojimo, vartotojas dažnai pakeis kai kurias formas. Nieko nėra blogiau, nei pakeisti dydį formoje ir valdiklius laikyti toje pačioje padėtyje. Visi valdikliai turi inkarus, leidžiančius juos „pritvirtinti“ prie 4 kraštų taip, kad valdiklis judėtų arba ištemptų, kai pridedamas kraštas. Tai lemia tokį elgesį, kai forma ištempiama iš dešiniojo krašto:

  1. Valdiklis pritvirtintas kairėje, bet ne dešinėje. - Jis nejuda ir neištiesia (blogai!)
  2. Valdiklis pritvirtintas prie kairiojo ir dešiniojo kraštų. Ji ištempiama, kai forma ištempiama.
  3. Valdiklis pritvirtintas prie dešiniojo krašto. Jis juda, kai forma ištempta.

Tokiems mygtukams kaip Uždaryti, kurie tradiciškai yra apačioje dešinėje, reikia 3 elgesio. „ListViews“ ir „DataGridViews“ geriausia naudoti su 2, jei stulpelių skaičiaus pakanka, kad forma būtų perpildyta, ir reikia juos slinkti). Viršutinis ir kairysis inkarai yra numatytieji. Nuosavybės lange yra madingas mažas redaktorius, kuris atrodo kaip Anglijos vėliava. Tiesiog spustelėkite bet kurią juostą (dvi horizontalias ir dvi vertikalias), kad nustatytumėte arba išvalytumėte reikiamą inkarą, kaip parodyta aukščiau esančiame paveikslėlyje.

Žymėjimas kartu

Viena ypatybė, kuri mažai paminėta, yra „Tag“ nuosavybė, tačiau ji gali būti nepaprastai naudinga. Ypatybių lange galite priskirti tik tekstą, tačiau savo kode galite turėti bet kokią reikšmę, kuri kyla iš objekto.

Aš naudojau žymą visam objektui laikyti, tuo tarpu „ListView“ rodydamas tik keletą jo savybių. Pavyzdžiui, galbūt norėsite kliento suvestinėje pateikti tik kliento vardą ir numerį. Bet dešiniuoju pelės mygtuku spustelėkite pasirinktą klientą ir atidarykite formą su visa kliento informacija. Tai nesunku, jei kuriate klientų sąrašą, skaitydami atmintyje visą kliento informaciją ir žymoje priskirdami nuorodą į klientų klasės objektą. Visuose valdikliuose yra žyma.

Kitame puslapyje:

Kaip dirbti su „TabControls“

10 iš 10

Darbas su „TabTabControls“

„TabControl“ yra patogus būdas sutaupyti formos vietos, turint kelis skirtukus. Kiekviename skirtuke gali būti piktograma arba tekstas. Galite pasirinkti bet kurį skirtuką ir rodyti jo valdiklius. „TabControl“ yra konteineris, tačiau jame yra tik „TabPages“. Kiekvienas „TabPage“ yra ir konteineris, prie kurio galima pridėti įprastus valdiklius.

X7.cs pavyzdyje aš sukūriau dviejų skirtukų puslapio skydelį, kurio pirmasis skirtukas vadinasi Valdikliai, turintis tris mygtukus ir žymimąjį langelį. Antrasis skirtuko puslapis yra Ženklai ir naudojamas norint parodyti visus prisijungusius veiksmus, įskaitant mygtuko paspaudimą arba žymės langelio perjungimą. Metodas, vadinamas „Log ()“, kviečiamas registruoti kiekvieną mygtuko paspaudimą ir pan. Jis prideda pateiktą eilutę į „ListBox“.

Aš taip pat įprastu būdu pridėjau du dešiniojo mygtuko paspaudimų meniu elementus į „TabControl“. Pirmiausia pridėkite „ContextMenuStrip“ prie formos ir nustatykite ją „TabControl“ nuosavybėje „ContextStripMenu“. Du meniu pasirinkimai yra Pridėti naują puslapį ir Pašalinti šį puslapį. Tačiau aš ribojau puslapio pašalinimą, kad būtų galima pašalinti tik naujai pridėtus skirtukų puslapius, o ne du originalius.

Naujo skirtuko puslapio pridėjimas

Tai lengva, tiesiog sukurkite naujo skirtuko puslapį, suteikite jam skirtuko Teksto antraštę, tada pridėkite jį prie skirtukų skirtuko „TabControl“ skirtuko „TabPages“ kolekciją.

„TabPage newPage“ = naujas „TabPage“ ();
newPage.Text = "Naujas puslapis";
„Tabs.TabPages.Add“ („newPage“);

„Ex7.cs“ kode aš taip pat sukūriau etiketę ir pridėjau ją prie „TabPage“. Kodas buvo gautas pridedant jį į formos kūrėją, kad būtų sukurtas kodas, tada nukopijuotas.

Puslapio pašalinimas yra tik reikalavimas paskambinti „TabPages.RemoveAt ()“, naudojant „Tabs.SelectedIndex“, kad gautumėte šiuo metu pasirinktą skirtuką.

Išvada

Šiame vadove mes matėme, kaip veikia kai kurie sudėtingesni valdikliai ir kaip jais naudotis. Kitame vadove aš tęsiu GUI temą ir pažvelgiu į foninio darbuotojo giją ir parodysiu, kaip ja naudotis.