TabIndex u radiobuttonu v panelu na formu   otázka

VB.NET, Compact Framework

Dobrý den,

CF .NET 2.0, VS08Pro

Mám formulář s různými ovládacími prvky a dvěma panely s dvojicí radioButtonů. RadioButtony fungují jako přepínače podle kterých se některé prvky formuláře zobrazují/skrývají.

Aplikace se musí ovládat pouze pomocí klávesnice a pro přesun po prvcích používám klávesu TAB.

Problém je, že potřebuji, aby RadioButtony dostaly fokus jako třetí prvek ve formuláři.

Přes View/Tab Order nelze nastavit index těchto prvků tak jak požaduji, vždy se jim nastaví pořadí až na konci všech prvků (př.14.1, 14.2).

Pokud indexy přepíšu ručně tak to stejně zařadí RB až nakonec procházení.

Věděl by někdo jak dostat tyto prvky kam potřebuji ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Čísluje se to podle pravidla Kontejner.OvládacíPrvek, takže jinak řečeno musíte nejdřív kliknout na nadřazený prvek (Panel, GroupBox) a potom v požadovaném pořadí na ovládací prvky v něm. Vyplatí se to nastavit až v momentě, kdy je na formuláři všechno.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Nejsem si jistý v čem že je vlastně problém, nicméně pokud nastavíte ručně vlastnost TabIndex měly by prvky dostávat pořadí takové jaké požadujete. Jen si dejte pozor aby jste neměl stejný index u několika prvků na stejné úrovni. Bohužel toto číslo se může opakovat a pak to může dělat neplechu (nesmyslné pořadí při získávání focusu). Jinak je potřeba si uvědomit, že pokud máte na formuláři nějaké kontejnery (třeba groupBoxy) tak pokud dostane focus groupbox automaticky se označují prvky které jsou uvnitř a až pak to skočí na další kontejner.

Takže já to řeším např takto:

Mám 2 groupboxy a v kazdém jsou dva radioButtony

-Groupbox1 (TabIndex=0)

-Radiobutton1 (TabIndex=0)

-Radiobutton2 (TabIndex=1)

-Groupbox2 (TabIndex=1)

-Radiobutton1 (TabIndex=0)

-Radiobutton2 (TabIndex=1)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano tak nějak to bude v plném FrameWorku, CF obsahuje použitelný kontejner pouze System.windows.forms.panel a ten nemá vlastnost tabindex, objekty které mám v něm ji mají.

Otázka tedy přetvrává jen ji modifikuji.

Jak zařadit ovládací prvky v kontejneru do pořadí, když kontejner "panel" nemá vlastnost TabIndex ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No tak potom stačí proklikat všechny ovládací prvky v požadovaném pořadí od prvního k poslednímu.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Děkuji za odpověď

Tak a tohle mi právě funguje při prvním spuštění, pokud v průběhu formu skryji a zobrazím některé prvky tak se mi tabindexy zblázní a prvky v kontejnerech zase dostávají fokus až na konci.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A jakým způsobem je skrýváte?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

No skrývání není tak úplně správné slovo, objektu dám Enable = False.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak to by mohlo být tím. Zakázaný ovládací prvek nelze vybrat (nemůže dostat fokus, který závisí na TabIndexu).

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Dělá to i když objektu dávám místo enabled visible.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A v čem je vlastně tak velký problém, když je to aplikace pro mobilní zařízení kde na 99% není klávesa Tab a uživatel vše ovládá stylusem?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Já jsem nikde neuváděl, že je to pro mobilní zařízení. Je to pro průmyslové pc s celeronem 1.6, 2Gb ram. Ale se systémem Windows ce 6 emb. A bohužel je tento jeden model bez dotykové obrazovky s numerickou tastaturou, funkčnímy klávesamy a tlačítky: del, tab, space ...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback