Tema: Re: C#, ComboBox, DropDown
Autorius: zZz
Data: 2010-05-19 16:43:33
Aš nenaudoju DataGridView, o DataView - kaip DataSource'ą ComboBox'ui.


"Jornada Del Muerto" <ask@me.email> wrote in message 
news:ht0p2i$1po$1@trimpas.omnitel.net...
>    Jei stipriai nesigilinant as tau ka norejau pasakyt, kad man rodos 
> buvus tokia situacija ir joje esme buvo tipu skirtume, koki ti uzdaves 
> datagridview combo columnui kaip value ir koki tu duodi is datatable 
> kuriuo fillinamas pats combobox jo value, jei sie tipai buna nesutampa 
> tada rodo kazka tokio... prachekink ar jie sutampa ar ne...
>
> :)
>
>
> "zZz" <zZz@zirzilia.lt> wrote in message 
> news:ht0mab$s2f$1@trimpas.omnitel.net...
>> Labas ;)
>>
>> Reikia patikslint šitą.
>> 0. Turiu, tarkim, DataView Rows'us:
>>    12345
>>    12435
>>    31248
>>    49841
>>
>> 1. Vedu ComboBox'e tekstą: 3
>> 2. DataView atsifiltruoja į
>>    12345
>>    12435
>>    31248
>> 3. Kviečiu DropDown ir
>> 3.1. Parinktas item'as sąraše - 31248;
>> 3.2. Text'as pakeistas į 31248.
>>
>> Reikia, kad parinktas itemas būtų 12345 arba nieko, o Text'as - 
>> nepakeistas,
>> t.y. 3.
>>
>> Čia - KeyUp'as, kuris keičia DataView:
>>
>>        protected override void OnKeyUp(KeyEventArgs e)
>>        {
>>            base.OnKeyUp(e);
>>
>>            //Get the Typed Text and Find it in the list
>>            string sTypedText = this.Text;
>>
>>            if (allowPartialSearch)
>>            {
>>                this.BeginUpdate();
>>                this.SuppressItemChangeEvent = true;
>>                //this.DroppedDown = false;
>>
>>                string filterOrig = viewData.RowFilter;
>>                string filter = (string.IsNullOrEmpty(sTypedText) ? "" :
>> string.Format("{0} like '%{1}%'", this.DisplayMember, sTypedText));
>>
>>                viewData.RowFilter = filter;
>>                // If we found the Typed Text in the list then 
>> Autocomplete
>>                if (viewData.Count > 0)
>>                {
>>                    this.Text = sTypedText;
>>                    this.SelectionStart = sTypedText.Length;
>>                    orgText = sTypedText;
>>                }
>>                else
>>                {
>>                    viewData.RowFilter = filterOrig;
>>                    this.Text = orgText;
>>                    this.SelectionStart = orgText.Length;
>>                }
>>                this.SuppressItemChangeEvent = false;
>>                this.EndUpdate();
>>            }
>>        }
>>
>>
>> /* Help, pls! :) */
>>
>>
>> "Jornada Del Muerto" <ask@me.email> wrote in message
>> news:ht0kji$okl$1@trimpas.omnitel.net...
>>> "zZz" <zZz@zirzilia.lt> wrote in message
>>> news:ht085a$1gv$1@trimpas.omnitel.net...
>>>> Turiu ComboBox'ą, kurio DataSource'as yra DataView (filtruoja reikšmes
>>>> ComboBox.DisplayMember like '%ComboBox.Text%').
>>>> Kaip padaryti, kad ComboBox'as po DropDown įvykio parinktų pirmą 
>>>> reikšmę
>>>> iš
>>>> sąrašo ir nepakeistų Text'o? :)
>>>>
>>>
>>> Sveiks,
>>>
>>>    Jei gerai supratau problema tai, mano controlas toki metoda turi 
>>> (tiesa
>>> by default pas mane visose select uzklausose grazinamas ID, NAME,...
>>> laikomasi kad pirmas laukas visada bus ID, antras pavadinimu - combo
>>> atveju jis visada vaizduojamas kaip tekstas combo):
>>