IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Není vidět kurzor v textboxu

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Michal Pflegshörl:12.5.2017 11:11

Ahoj všem,
potřebuji pomoc.
Pokud kódem změním velikost formuláře, nezobrazuje se mi kurzor v textboxech.

 
Odpovědět
12.5.2017 11:11
Avatar
Odpovídá na Michal Pflegshörl
Michal Štěpánek:12.5.2017 13:42

Trošku to rozveď, ukaž jak a kdy tu velikost nastavuješ...

Editováno 12.5.2017 13:42
Nahoru Odpovědět
12.5.2017 13:42
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
termostat
Člen
Avatar
termostat:12.5.2017 14:02

Možná i naznač jestli se jedná o WPF nebo WinForms :)

 
Nahoru Odpovědět
12.5.2017 14:02
Avatar
Michal Pflegshörl:12.5.2017 15:05

Jedná se o WinForms.
Načtu data do dataGridView_Seznam a pokud žádná nejsou tak ho zmenšením šířky formuláře schovám. Pokud formulář nezmenším, kurzor v textboxech normálně vidím.

if (dataGridView_Sez­nam.Rows.Count == 0)
{
this.MinimumSize = new Size(400, this.MinimumSi­ze.Height);
this.Width = 400;
this.Refresh();
this.Update();
this.Invalidate();
}

 
Nahoru Odpovědět
12.5.2017 15:05
Avatar
termostat
Člen
Avatar
Odpovídá na Michal Pflegshörl
termostat:12.5.2017 16:13

V jaké události voláš ten kód, který zmiňuješ ? Není to náhodou na stisk nějakého buttonu ? A není to tím, že ten button stisknutím získá focus a tedy textbox o něj přijde ?

 
Nahoru Odpovědět
12.5.2017 16:13
Avatar
Michal Pflegshörl:15.5.2017 7:32

Kód běží v události form_shown
Není to focusem. Ať po zobrazení formuláře kliknu do jakéhokoli textboxu tak mi v něm nezačne blikat kurzor. Psát do nich, posouvat se v textu, vybírat text, atd. normálně můžu.
Prostě fungují úplně normálně, jen v nich nebliká kurzor.

 
Nahoru Odpovědět
15.5.2017 7:32
Avatar
plelovsky
Člen
Avatar
plelovsky:15.5.2017 11:23
  1. k překreslení formuláře by mělo stačit Refresh()
  2. pokud používáš Invalidate() a Update(), tak by mělo být napřed Invalidate() a pak Update()

https://msdn.microsoft.com/…vs.110).aspx
There are two ways to repaint a form and its contents:
You can use one of the overloads of the Invalidate method with the Update method.
You can call the Refresh method, which forces the control to redraw itself and all its children. This is equivalent to setting the Invalidate method to true and using it with Update.
The Invalidate method governs what gets painted or repainted. The Update method governs when the painting or repainting occurs. If you use the Invalidate and Update methods together rather than calling Refresh, what gets repainted depends on which overload of Invalidate you use. The Update method just forces the control to be painted immediately, but the Invalidate method governs what gets painted when you call the Update method.

 
Nahoru Odpovědět
15.5.2017 11:23
Avatar
Michal Pflegshörl:15.5.2017 11:48

Tak ani samotný Refresh, ani Invalidate() a poté Update(), nezabírá.

 
Nahoru Odpovědět
15.5.2017 11:48
Avatar
termostat
Člen
Avatar
termostat:15.5.2017 11:54

Asi bysme museli vidět víc kódu (ideálně celý), protože ať tu zmíněnou část kódu volám odkudkoliv, nikdy nedojde ke ztrátě kurzoru v TextBoxu.

 
Nahoru Odpovědět
15.5.2017 11:54
Avatar
Michal Pflegshörl:16.5.2017 7:38

Tak nakonec zabralo nastavit při zmenšení formuláře datagridview.vi­sible na false.
Sice nechápu jak to spolu souvisí, ale vzhledem k několika grafickým požadavkům zadavatele, je potřeba vzhled některých objektů upravit programově, takže se tomu nedivím :-)

if (dataGridView_Sez­nam.Rows.Count == 0)
{
this.MinimumSize = new Size(400, this.MinimumSi­ze.Height);
this.Width = 400;
dataGridView_Sez­nam.Visible = false;
}

Všem děkuji za ochotu pomoci

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
16.5.2017 7:38
Avatar
Neaktivní uživatel:27.5.2017 15:08

Mám pocit že se něco jako skrýt kurzor při psaní videl v nastavení myši ve windows

Nahoru Odpovědět
27.5.2017 15:08
Neaktivní uživatelský účet
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 11 zpráv z 11.