Tema: Re: C#, ComboBox, DropDown
Autorius: zZz
Data: 2010-05-19 15:41:47
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):