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.

Člen

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Trošku to rozveď, ukaž jak a kdy tu velikost nastavuješ...
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_Seznam.Rows.Count == 0)
{
this.MinimumSize = new Size(400, this.MinimumSize.Height);
this.Width = 400;
this.Refresh();
this.Update();
this.Invalidate();
}
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 ?
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.
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.
Tak ani samotný Refresh, ani Invalidate() a poté Update(), nezabírá.
Tak nakonec zabralo nastavit při zmenšení formuláře
datagridview.visible 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_Seznam.Rows.Count == 0)
{
this.MinimumSize = new Size(400, this.MinimumSize.Height);
this.Width = 400;
dataGridView_Seznam.Visible = false;
}
Všem děkuji za ochotu pomoci
Mám pocit že se něco jako skrýt kurzor při psaní videl v nastavení myši ve windows
Zobrazeno 11 zpráv z 11.