Diskuze: c# form - zakázání označování textu v komponentě textBox
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 10 zpráv z 60.
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.
Tak už jsem se k tomu konečně dostal a už mi to funguje
Díky moc. Ještě jsem se chtěl
zeptat jestli by bylo možné aby ten sroll byl viditelný a enabled=false když
je krátký text (vejde se do labelu) a kdyby byl text dlouhý (nevejde se do
labelu) pak by byl scroll viditelný a enabled=true.
při tomhle řešení ne. Muselo by se to řešit jinak (bude to složitější), třeba podobně jako to řešil D0ll0k, ale jeho příklad nefunguje dobře. Možná to i zkusím.
takže tady jsem předchozí projekt trochu upravil:
Přidal jsem do toho panelu VScrollBar a Dock
jsem mu nastavil na Right
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// do panelu panel1 jsem vložil na pozici 0 0 label label1 a
// VScrollBar vScoll s nastavením Dock-Right
label1.AutoSize = true;
panel1.Resize += UpdateSize;
//label1.TextChanged += UpdateSize;
label1.Resize += UpdateSize; //<= toto jsem doplnil
Load += UpdateSize;
vScoll.Scroll += vScrollAction; //<= toto jsem doplnil
}
//a upravil jsem tuto metodu:
private void UpdateSize(object sender, EventArgs e)
{
Size maxsize = label1.MaximumSize;
maxsize.Width = panel1.Width - 3 - vScoll.Width;
label1.MaximumSize = maxsize;
label1.Top = 0;
vScoll.Enabled = (label1.Height > panel1.Height);
vScoll.LargeChange = panel1.Height;
vScoll.Maximum = label1.Height + 16;
//těch 16 jsem tam dal, aby měl uživatel jistotu, že je dole
vScoll.Value = vScoll.Minimum;
}
//vložení textu:
private void button1_Click(object sender, EventArgs e)
{
if (Clipboard.ContainsText()) label1.Text = Clipboard.GetText();
}
private void vScrollAction(object sender, ScrollEventArgs e)
{
label1.Top = -vScoll.Value;
}
}
doufám, že už budeš spokojený
Super tak to je přesně to co jsem potřeboval. Díky moc
Ještě prosím mám jednu
otázku. Nešlo by rychleji rolovat v labelu? Teď je to o něco pomalejší
než v předchozím případě. To už je snad opravdu poslení dotaz. Jinak
skvělá práce...
Díky
Mě se to funguje, normálně. Tak nevím jestli to pomůže, ale můžeš zkusit dát do konstruktoru okna DoubleBuffered = true; nebo i použít upravený Label
public class MyLabel : Label
{
public MyLabel()
{
DoubleBuffered = true;
}
}
Ono přece jen hýbání komponentami není ideální způsob jak pracovat s
WinForm.
Nejlepší by asi bylo kreslení textu, ale teď nemám moc čas se s tím
drbat.
Ahoj, tak jsem se k tomu opět po dlouhé době dostal. Tak DoubleBuffered = true; mi nepomohlo, pořád když chci rollovat v labelu je to hrozně pomalé oproti předchozímu případu viz. gif v příloze. V horním labelu jde rollovat rychle a ve spodním ne. Spodní label je poslední varianta a vše jinak funguje jak má. Nevíš co stím? Díky
tak na to zkus jít od lesa:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// do panelu panel1 jsem vložil na pozici 0 0 label label1 a
// VScrollBar vScroll s nastavením Dock-Right
label1.AutoSize = true;
panel1.AutoScroll = true; //!
panel1.Resize += UpdateSize;
label1.Resize += UpdateSize;
Load += UpdateSize;
vScroll.Maximum = vScroll.Minimum; //!
vScroll.Enabled = false; //!
}
private void UpdateSize(object sender, EventArgs e)
{
Size maxsize = label1.MaximumSize;
maxsize.Width = panel1.Width - 3 - vScroll.Width;
label1.MaximumSize = maxsize;
vScroll.Visible = (label1.Height < panel1.Height); //!
}
/*
//vložení textu:
private void button1_Click(object sender, EventArgs e)
{
if(Clipboard.ContainsText()) label1.Text = Clipboard.GetText();
}
*/
}
(důležité změny jsem označil vykřičníkem)
Zobrazeno 10 zpráv z 60.
