Diskuze: c# form - uložení více hodnot komponent do jednoho pole
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 17 zpráv z 17.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


To zavání špatným návrhem... K čemu je potřeba mít tolik NumericUpDown?
Buď skrz reflexi nebo si přidej reference do jednoho pole a pak s tím normálně pracuj.
Díky za rady. Nemohl bys mi to lépe popsat ani jedno jsem zatím nepoužíval....
Můžeš v cyklu projít kolekci Controls a hledat v nich všechny položky které jsou typu NumericUpDown a hodnotu si pak ukládat do pole. Pokud ty NumericUpDowny vložíš do nějakého panelu nebo groupboxu, tak se ti tam nebudou plést ostatní itemy, protože budeš prohledávat pouze kolekci <tvujGroupbox>.controls (předpokládám že používáš winforms).
To zní dobře. Winform používám. Ty NumericUpDown mám umístěné v TabControl (ve třech záložkách) šlo by nějak prohledávat jednotlivé záložky?? Prosím o více infa control nikdy jsem stouto kolekcí nedělal. Díky
Skrz tu reflexi by to bylo zbytečně složité. Pak je tu ten způsob co navrhl Honza, ale ten je taky takový, že nemáš zajištěnou sekvenci těch kontrolů. Takže skrz to pole:
NumericUpDown[] numericUpDowns = new NumericUpDown[]
{
numericUpDown1, numericUpDown2, ... , numericUpDownN
};
Lepší způsob, který by byl zároveň i čitelný není. Reflexe může být napsána i hezky, ale furt je to reflexe, které by ses měl vyhnout, pokud to jde.
Díky všem za rady. Nakonec jsem použil variantu od Honzi Vargovského a
funguje to bezvadně, ještě jednou díky. 
Ahoj,
nezlob te se, že nezakládám nové téma, ale patří to ještě k tomuto.
Vytvořil jsem si několi polí s referencemi:
RadioButton[] radiobuttons = new RadioButton[]
{
radioButtonM1_DC, radioButtonM1_Harmonic, radioButtonM1_Pulse, radioButtonM1_PulseIrc, radioButtonM1_PulseIrcTenz,
radioButtonM2_DC, radioButtonM2_Harmonic, radioButtonM2_Pulse, radioButtonM2_PulseIrc, radioButtonM2_PulseIrcTenz,
radioButtonM3_DC, radioButtonM3_Harmonic, radioButtonM3_Pulse, radioButtonM3_PulseIrc, radioButtonM3_PulseIrcTenz,
radioButtonM4_DC, radioButtonM4_Harmonic, radioButtonM4_Pulse, radioButtonM4_PulseIrc, radioButtonM4_PulseIrcTenz,
radioButtonM5_DC, radioButtonM5_Harmonic, radioButtonM5_Pulse, radioButtonM5_PulseIrc, radioButtonM5_PulseIrcTenz,
radioButtonM6_DC, radioButtonM6_Harmonic, radioButtonM6_Pulse, radioButtonM6_PulseIrc, radioButtonM6_PulseIrcTenz,
radioButtonM7_DC, radioButtonM7_Harmonic, radioButtonM7_Pulse, radioButtonM7_PulseIrc, radioButtonM7_PulseIrcTenz,
radioButtonM8_DC, radioButtonM8_Harmonic, radioButtonM8_Pulse, radioButtonM8_PulseIrc, radioButtonM8_PulseIrcTenz,
radioButtonM9_DC, radioButtonM9_Harmonic, radioButtonM9_Pulse, radioButtonM9_PulseIrc, radioButtonM9_PulseIrcTenz,
radioButtonM10_DC, radioButtonM10_Harmonic, radioButtonM10_Pulse, radioButtonM10_PulseIrc, radioButtonM10_PulseIrcTenz,
};
NumericUpDown[] numericUpDowns = new NumericUpDown[]
{
numericUpDownM1_Harmonic_PulsWidth, numericUpDownM1_Harmonic_Freq, numericUpDownM1_Pulse_PulsWidth, numericUpDownM1_Pulse_SlotWidth, numericUpDownM1_Pulse_Freq,
numericUpDownM1_PulseIrc_PulsWidth, numericUpDownM1_PulseIrc_SlotWidth, numericUpDownM1_PulseIrc_IrcPos, numericUpDownM1_PulseIrcTenz_PulsWidth,
numericUpDownM1_PulseIrcTenz_SlotWidth, numericUpDownM1_PulseIrcTenz_IrcStart, numericUpDownM1_PulseIrcTenz_IrcStop, numericUpDownM1_PulseIrcTenz_Tenz,
numericUpDownM2_Harmonic_PulsWidth, numericUpDownM2_Harmonic_Freq, numericUpDownM2_Pulse_PulsWidth, numericUpDownM2_Pulse_SlotWidth, numericUpDownM2_Pulse_Freq,
numericUpDownM2_PulseIrc_PulsWidth, numericUpDownM2_PulseIrc_SlotWidth, numericUpDownM2_PulseIrc_IrcPos, numericUpDownM2_PulseIrcTenz_PulsWidth,
numericUpDownM2_PulseIrcTenz_SlotWidth, numericUpDownM2_PulseIrcTenz_IrcStart, numericUpDownM2_PulseIrcTenz_IrcStop, numericUpDownM2_PulseIrcTenz_Tenz,
numericUpDownM3_Harmonic_PulsWidth, numericUpDownM3_Harmonic_Freq, numericUpDownM3_Pulse_PulsWidth, numericUpDownM3_Pulse_SlotWidth, numericUpDownM3_Pulse_Freq,
numericUpDownM3_PulseIrc_PulsWidth, numericUpDownM3_PulseIrc_SlotWidth, numericUpDownM3_PulseIrc_IrcPos, numericUpDownM3_PulseIrcTenz_PulsWidth,
numericUpDownM3_PulseIrcTenz_SlotWidth, numericUpDownM3_PulseIrcTenz_IrcStart, numericUpDownM3_PulseIrcTenz_IrcStop, numericUpDownM3_PulseIrcTenz_Tenz,
numericUpDownM4_Harmonic_PulsWidth, numericUpDownM4_Harmonic_Freq, numericUpDownM4_Pulse_PulsWidth, numericUpDownM4_Pulse_SlotWidth, numericUpDownM4_Pulse_Freq,
numericUpDownM4_PulseIrc_PulsWidth, numericUpDownM4_PulseIrc_SlotWidth, numericUpDownM4_PulseIrc_IrcPos, numericUpDownM4_PulseIrcTenz_PulsWidth,
numericUpDownM4_PulseIrcTenz_SlotWidth, numericUpDownM4_PulseIrcTenz_IrcStart, numericUpDownM4_PulseIrcTenz_IrcStop, numericUpDownM4_PulseIrcTenz_Tenz,
numericUpDownM5_Harmonic_PulsWidth, numericUpDownM5_Harmonic_Freq, numericUpDownM5_Pulse_PulsWidth, numericUpDownM5_Pulse_SlotWidth, numericUpDownM5_Pulse_Freq,
numericUpDownM5_PulseIrc_PulsWidth, numericUpDownM5_PulseIrc_SlotWidth, numericUpDownM5_PulseIrc_IrcPos, numericUpDownM5_PulseIrcTenz_PulsWidth,
numericUpDownM5_PulseIrcTenz_SlotWidth, numericUpDownM5_PulseIrcTenz_IrcStart, numericUpDownM5_PulseIrcTenz_IrcStop, numericUpDownM5_PulseIrcTenz_Tenz,
};
ComboBox[] comboBoxs = new ComboBox[]
{
comboBoxM1_PulsIrcTenz_Edge, comboBoxM2_PulsIrcTenz_Edge, comboBoxM3_PulsIrcTenz_Edge, comboBoxM4_PulsIrcTenz_Edge,
comboBoxM5_PulsIrcTenz_Edge, comboBoxM6_PulsIrcTenz_Edge, comboBoxM7_PulsIrcTenz_Edge, comboBoxM8_PulsIrcTenz_Edge,
comboBoxM9_PulsIrcTenz_Edge, comboBoxM10_PulsIrcTenz_Edge, comboBoxM11_PulsIrcTenz_Edge, comboBoxM12_PulsIrcTenz_Edge,
comboBoxM13_PulsIrcTenz_Edge, comboBoxM14_PulsIrcTenz_Edge, comboBoxM15_PulsIrcTenz_Edge, comboBoxM16_PulsIrcTenz_Edge
}
ale když ty pole dám mimo metody ve kterých jsem je používal a dám je jako globální proměnné (potřebuji k nim přistupovat z více metod), tak mi to hodí tuto chybu:
A field initializer cannot reference the non-static field, method, or property 'numericUpDownM1_Harmonic_PulsWidth'
Napadá mě jen jedno řešení vytvořit pro každé pole metodu a vracet hodnotu pole. Nelze nějak vytvořit jako globální proměnné?? Díky...
Globální proměnná ne, ale instancni ano. Dej si ty deklarace mimo metody(kdekoliv do třídy) a nainicalizuj si to v konstruktoru.
Teď to nějak nechápu. V C# jsem začátečník...
Když dám ty deklarace těch polí kdekoliv do třídy hned to vyhodí
chybu:
A field initializer cannot reference the non-static field, method, or property 'numericUpDownM1_Harmonic_PulsWidth'
A teď nevím jak přesně vytvořit konstruktor pro to pole?? Když ho zkouším vytvořit pořád to hlásí chyby. Díky
Tak konstruktor jsem už mám:-) Ale nevím jak tam mám nainicializovat ty pole??
class X
{
// deklarace
private TypKontrolky[] kontrolky;
public X()
{
// inicializace v konstruktoru
kontrolky = new TypKontrolky[] {...};
}
}
Ty NumericUpDown mám umístěné v TabControl (ve třech záložkách) šlo by nějak prohledávat jednotlivé záložky??
nejjednodušší asi bude, když si to pole rozdělíš na tři - numericUpDownsPanel1,numericUpDownsPanel2,numericUpDownsPanel3 a do nich dáš odkazy na příslušné kontrolky
Díky moc. Vše funguje jak má. Snad to byl poslední dotaz
Ještě jednou díky
Zobrazeno 17 zpráv z 17.