Diskuze: pomoc - textbox

C# .NET .NET (C# a Visual Basic) pomoc - textbox American English version English version

Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

Zdravím, potřeboval bych poradit ...

Dělám jednu hru (FORM. APL.), kde budu využívat TEXTBOX.
U textboxu ale nechci aby šel kopírovat (http://prntscr.com/p6l31)

Napadlo mě dát enabled false, to mi sice dá požadovaný efekt 'nekopírování', ale text v něm je šedivý a nepodařilo se mi ho změnit ....

měl by někdo nápad jak docílit 'nekopírovatel­nosti' ale s výrazným černým písmem ? :)

Odpovědět 14.1.2013 22:21
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Luboš Běhounek (Satik):

Co použít label? :)

Nahoru Odpovědět 14.1.2013 22:25
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Honza Bittner
matesax:
TextBox.ReadOnly = true;

@Satik@

A jak jej bude kopírovat?

Editováno 15.1.2013 6:06
 
Nahoru Odpovědět 15.1.2013 6:04
Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

label je blbost ... budu mít víceřádkové texty

a když dám TextBox.ReadOnly = true; tak to pořád jde zkopírovat(nejde jenom přímo psát) ...

potřebuji aby nešlo nic zkopírovat ...
prostě jako je to u enabled = false, jen tam se změní barva písma a nešla mi změnit ...

Editováno 15.1.2013 7:10
Nahoru Odpovědět 15.1.2013 7:10
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Odpovídá na matesax
Luboš Běhounek (Satik):

On právě kopírovat nechce, ne? :)

Honza Bittner : label můžeš mít taky víceřádkový, stačí AutoSize nastavit na false.

Nahoru Odpovědět 15.1.2013 8:07
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
matesax:

No jo - blbě čtu... :) Label bych ale stejně nepoužil. Stačilo by do TextBox eventu KeyDown dát:

e.Handled = true;

Nemusíš tedy nic zakazovat - jen uděláš metodu pro KeyDown a do ní vložíš ten příkaz pro ukončení...

Label je nevhodný pro texty. Je to jen label - popisek...

Editováno 15.1.2013 8:59
 
Nahoru Odpovědět 15.1.2013 8:58
Avatar
Odpovídá na matesax
Luboš Běhounek (Satik):

Nestačilo, pořád je tu třeba možnost v TextBoxu text označit myší, kliknout pravým a dát "Kopírovat" :)

Nevím o žádném důvodu, proč by label měl být nevhodný pro texty, klidně bych ho použil, pak máš jistotu, že ti ten text nikdo (z běžných uživatelů) nezkopíruje.

Nahoru Odpovědět 15.1.2013 12:33
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
matesax:

Vidíš - zkus si to, TextBox nemá primárně ContextMenuStrip - to si pleteš s RichTextBoxem. Problém to je - jelikož label není vhodný pro delší a už vůbec ne víceřádkové texty... Jak jsem psal - ať použije TextBox a v KeyDown ať pohlcuje stiské klávesy...

 
Nahoru Odpovědět 15.1.2013 13:59
Avatar
Odpovídá na matesax
Luboš Běhounek (Satik):

Zkusil jsem. Zkus si to i ty :). Nabídka funguje i když jsem žádné menu nevytvářel.

Přidávám screen, je to obyčejný textbox, ReadOnly nastaveno na true.

Pod něj jsem plácl ještě jeden label a do něj dlouhý text, a nevšiml jsem si, že by s tím byl někde nějaký problém, proto by mě zajímal tvůj důvod, proč se podle tebe na tohle label nehodí.

Nahoru Odpovědět  +2 15.1.2013 14:23
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
matesax:

ReadOnly dej false... Dej tam to odchycení kláves. Popř. nastav ContextMenuStrip na false/null - ale prostě Label je pro popisky.

 
Nahoru Odpovědět 15.1.2013 14:32
Avatar
Odpovídá na matesax
Luboš Běhounek (Satik):

Vaříš z vody a moc ti to nejde.

e.Handled = true;

jsem přidal, nic se nezměnilo, dokonce i CTRL+C stále funguje.

ReadOnly na to vliv nemá vůbec, to ovlivňuje jen, jestli může uživatel měnit ten text (ale taky jsem zkoušel obě hodnoty, pro tvůj klid v duši).

ContextMenuStrip je už defaultně nastaven na (none).

Pořád jen píšeš, že label je pro popisky, ale pořád nevidím žádný argument, proč by se nemohl použít i pro delší text.

Nahoru Odpovědět  +1 15.1.2013 14:41
:)
Avatar
Luboš Běhounek (Satik):

Možná si nerozumíme v pojmu dlouhý text - je podle tebe text přes půl formuláře už dlouhý text nebo ještě ne?

Editováno 15.1.2013 14:47
Nahoru Odpovědět 15.1.2013 14:46
:)
Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

potřebuji aby byl ten text jako obrázek ...
prostě se nedá zabrat/vybrat/za­modrit (nebo jak tomu chcete rikat) a ani aby se nedal kopirovat ... :)

asi ale zvolím tu variantu s labelem ...

Nahoru Odpovědět 15.1.2013 15:46
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

tak super ! ten label je dokonalej :)

díky moc Luboš Běhounek (Satik)u (i ty matesax) za snahu :)

Nahoru Odpovědět 15.1.2013 15:51
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Luboš Běhounek (Satik):

Z běžných komponent, které umějí zobrazovat text a ten text na nich nejde označit(->ani kopírovat) moc není, kromě labelu to jsou v podstatě už jen button a picturebox. Button se na to moc nehodí a u pictureBoxu by sis musel ručně řešit zalamování řádků, nejjednodušší to je s labelem.
Jedině si pak napsat vlastní komponentu :)

Nahoru Odpovědět 15.1.2013 15:56
:)
Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

ok :) tak díky moc ! :)

Nahoru Odpovědět 15.1.2013 16:09
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
lcet.m
Člen
Avatar
lcet.m:

Co začít dělat desktop aplikace ve WPF? :)

 
Nahoru Odpovědět 15.1.2013 16:51
Avatar
Kit
Redaktor
Avatar
Odpovídá na lcet.m
Kit:

To není dost hardcore :)

Editováno 15.1.2013 16:56
Nahoru Odpovědět 15.1.2013 16:56
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.