DataGridViewComboBoxColumn   zodpovězená otázka

VB.NET

Zdravím.

Využívám v DataGridView sloupce typu DataGridViewComboBoxColumn a potřeboval jsem, aby bylo možné při editaci hodnoty v takovém sloupci použít tzv. Autocomplete, tedy vyhledávání podle postupně zadávaných znaků. Použil jsem následující konstrukci s událostí EditingControlShowing:

  Private Sub dgwTabulka_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dgwTabulka.EditingControlShowing
    If TypeOf e.Control Is ComboBox Then
      With DirectCast(e.Control, ComboBox)
        .DropDownStyle = ComboBoxStyle.DropDown
        .AutoCompleteMode = AutoCompleteMode.SuggestAppend
        .AutoCompleteSource = AutoCompleteSource.ListItems
      End With
    End If
  End Sub

Vše funguje jak má, pouze když opouštím takto editovanou buňku tabulátorem, tak zůstane prázdná (V události CellEndEdit také vidím při krokování hodnotu DBNull). Pokud ji opustím klávesou Enter, je vše v pořádku a do buňky se vloží hodnota vybraná v rozbaleném seznamu. Zajímavé je, že při editaci běžných textových buněk se po vložení prvního znaku objeví v RowHeaderCell symbol tužky, který značí, že se něco edituje, ale při psaní v "Combo" buňce, která má rozbalený seznam se tento symbol nezobrazí. Také je s podivem, že nastavím-li .DropDownStyle = ComboBoxStyle.DropDownList, tak i po opuštění buňky tabulátorem se hodnota uloží. Bohužel se zase ztratí požadovaná funkcionalita s automatickým dokončováním a vyhledává se jen podle prvního písmene.

Už s tím laboruju tři hodiny a nemohu na nic přijít.

Poradí někdo?

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

A nevěděl by někdo alespoň, jak přinutit programově Datagridview, aby došlo ke zobrazení symbolu tužky v RowHeaderCell při vstupu do buňky a zahájení editace? To má na svědomí nějaká vlastnost, která se u textových sloupců nastaví automaticky vstupem prvního znaku (tužka je jen zobrazení příznaku uživateli, že něco změnil). U ComboBox sloupců to funguje taky dokud nezapnu ten zatraceně potřebný režim DropDown. No a při validaci buňky se pak evidentně nepřesune hodnota z editační komponenty do buňky samotné...

Trochu mě překvapuje, že jste na to nikdo ještě nenarazili. Buď to všem funguje a mně ne :-(, nebo to nikdo nepoužívá, protože to je blbost a tím pádem bloudím (již druhý den) slepou uličkou neperspektivního řešení. Mně ale připadá ComboBoxColumn jako geniální řešení pro editaci tabulek v normalizované databázi, kde jsou numerické vazební sloupce do dalších tabulek a uživateli chci při editaci tabulky zobrazit textovou hodnotu z druhé tabulky pro odpovídající vazební sloupec...

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

Kdyby to ještě někoho zajímalo, tak řešení najde zde:

http://social.msdn.microsoft.com/Forums/...

nahlásit spamnahlásit spam 1 / 1 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