Jak "vylézt" z Comboboxu?   zodpovězená otázka

VB.NET, WinForms

Dobrý den,

nevíte pls jak vylézt z comboboxu aniž bych kliknul na jiné tlačítko? Třeba kdybych jen kliknul bokem někam na formulář. Nebo když jsem v Comboboxu a stisknu ENTER, aby to nezůstalo v Comboboxu označený. (abych kolečkem myši už nemohl změnit výběr comboboxu... - spíš aby myš posunula SCROLL kousek dolů...)

Za odpověď budu velmi vděčný, předem děkuji a přeji všem příjemný den

Tomáš

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

Pokud máte na formuláři ještě jiný prvek, třeba tlačítko, převeďte na něj zaměření (focus). Kdyby byl na formuláři jen samotný ComboxBox, pak nevím

Public Class Form1

  Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    Button1.Focus()
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    End
  End Sub
End Class

(jen amatérská rada)

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

Tak mě z hlavy napadá: nelze hodit focus na formulář?

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

Tak jsem to zkoušel a na ten formulář to nejde. Pokud na formuláři chcete mít pouze ComboBox a chcete z něj vylést, tak je nejlepší použít výše uvedený kod:

   Button1.Fosus()

...a tlačítko (Button1) umístit mimo formulář.

Pozor tlačítko musí být visible (Button1.Visible=True). Nejlepší je ho tam, kam se formulář nemůže roztáhnout, pokud je sizable. Tzn. pokud platí Form1.FormBorderStyle = Sizable nebo Form1.AutoSize = True

Mimo formulář lze tlačítko umístit v režimu [Design] v okně Properties -> Location -> 500:-50. Takto se tlačítko octne mimo Formulář, ale můžete na něj snadno zapomenout, což vám může, ale nemusí být jedno.

Proto ja osobně používá druhou variantu, asice:

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Button1.Top = -50
  End Sub

Tím se tlačítko přesune po načtení Form1 "mimo zorné pole" a v navrhu ho můžu mit kdekoli uprostřed formuláře.

No a tady je ještě kod na ošetření toho stisknuti ENTERu

    Private Sub ComboBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyDown
        If e.KeyCode = Keys.Return Then Button1.Focus()
    End Sub

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