Diskuze: Proměnné neaktivního formu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 8 zpráv z 8.
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.
Existuje něco jako Application.Forms, Application.OpenForms nebo tak, kde jsou uloženy všechny formy.
if (Application.OpenForms.OfType<Form1>().Any())
{
Application.OpenForms.OfType<Form1>().First(). -> instance/proměnné etc (nezapomeň jim změnit modifikátor, privátní neuvidíš);
}
Nebo si je můžeš nastavit na statické a přistupovat k nim přes
Form1.
Nebo můžeš do Program.cs napsat tohle:
public static Form1 mainFormInstance;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
mainFormInstance = new Form1();
Application.Run(mainFormInstance);
}
A si dáš Program.mainFormInstance.
etc...
Jaký je tam potřeba using? zkoušel jsem to s tou instancí formu, ale nevím jaký je na "mainForm" potřeba using, když dám ten malý modrý obdelník tak nemám na výběr přidání usingu ale generate class for 'mainForm', generate new type...
Špatně jsem to pochopil, až pozdě mě napadlo že mainForm nepotřebuje using ale mám ho nahradit názvem formu
Můžeš vytvořit most mezi formy (Možná jednoduší řešení.):
Form1:
using System;
using System.Windows.Forms;
namespace WFASample
{
public partial class Form1 : Form
{
private Form2 f2;
public Form1()
{
InitializeComponent();
f2 = new Form2(this);
}
private void button1_Click(object sender, EventArgs e)
{
pozici dostaneš: MessageBox.Show(f2.ActualPosition.ToString());
f2.Show();
}
}
}
Form2:
using System;
using System.Windows.Forms;
using System.Drawing;
namespace WFASample
{
public partial class Form2 : Form
{
Form1 most = null;
public Form2(Form1 callingForm)
{
InitializeComponent();
most = callingForm as Form1;
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Hide();
}
public Point ActualPosition
{
get { return this.Location; }
}
}
}
Přijde mi to lepší, než řešit statiku atp... Jen poznámka - musel jsem nahradit ukončení formu Form2 za jeho skrytí, jelokož po jeho ukončení by nešlo Form2 znovu zavolat - při ukončení dojde ke smazní... Tento problém lze vyřešit novou inicializací.
Tedy před každé Show() bys musel dát:
f2 = new Form2(this);
O statiku tu nejde ta je přece už v konstuktoru Program.cs, tady jde jen o to dát si form do proměnné se kterou se dá pracovat jako s běžnou funkcí, a nechápu k čemu tvořit mosty mezi formy, chtěl jsem jen vědět jak volat funkce Form1.ActiveForm.() i v neaktivním formu
Zobrazeno 8 zpráv z 8.