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):
>>