seleccionar - ¿Cómo configuro el elemento seleccionado en un comboBox para que coincida con mi cadena usando C#?
ejemplos combobox visual basic (23)
¿Has probado la propiedad Text ? Esto funciona para mi.
ComboBox1.Text = "test1";
La propiedad SelectedText es para la parte seleccionada del texto editable en la parte de cuadro de texto del cuadro combinado.
Tengo una cadena "test1" y mi comboBox contiene test1
, test2
y test3
. ¿Cómo configuro el elemento seleccionado a "prueba1"? Es decir, ¿cómo puedo unir mi cadena a uno de los elementos de comboBox?
Estaba pensando en la línea de abajo, pero esto no funciona.
comboBox1.SelectedText = "test1";
Creé una función que devolverá el índice del valor
public static int SelectByValue(ComboBox comboBox, string value)
{
int i = 0;
for (i = 0; i <= comboBox.Items.Count - 1; i++)
{
DataRowView cb;
cb = (DataRowView)comboBox.Items[i];
if (cb.Row.ItemArray[0].ToString() == value)// Change the 0 index if your want to Select by Text as 1 Index
{
return i;
}
}
return -1;
}
Deberia de funcionar
Yourcomboboxname.setselecteditem("yourstring");
Y si quiere establecer una cadena de base de datos, use esto
Comboboxname.setselecteditem(ps.get string("databasestring"));
Esta solución se basa en MSDN con algunas modificaciones que hice.
Encuentra la cadena exacta o PARTE de cadena y la establece.
private int lastMatch = 0; private void textBoxSearch_TextChanged(object sender, EventArgs e) { // Set our intial index variable to -1. int x = 0; string match = textBoxSearch.Text; // If the search string is empty set to begining of textBox if (textBoxSearch.Text.Length != 0) { bool found = true; while (found) { if (comboBoxSelect.Items.Count == x) { comboBoxSelect.SelectedIndex = lastMatch; found = false; } else { comboBoxSelect.SelectedIndex = x; match = comboBoxSelect.SelectedValue.ToString(); if (match.Contains(textBoxSearch.Text)) { lastMatch = x; found = false; } x++; } } } else comboBoxSelect.SelectedIndex = 0; }
¡Espero haber ayudado!
Esto debería funcionar:
Combox1.SelectedIndex = Combox1.FindStringExact("test1")
He llenado mi ComboBox con una DataTable llena de una base de datos. Luego configuré el DisplayMember y el ValueMember. Y uso este código para establecer el elemento seleccionado.
foreach (DataRowView Row in ComboBox1.Items)
{
if (Row["ColumnName"].ToString() == "Value") ComboBox1.SelectedItem = Row;
}
He usado un método de extensión:
public static void SelectItemByValue(this ComboBox cbo, string value)
{
for(int i=0; i < cbo.Items.Count; i++)
{
var prop = cbo.Items[i].GetType().GetProperty(cbo.ValueMember);
if (prop!=null && prop.GetValue(cbo.Items[i], null).ToString() == value)
{
cbo.SelectedIndex = i;
break;
}
}
}
Entonces solo consuma el método:
ddl.SelectItemByValue(value);
No tiene esa propiedad en el ComboBox. Tiene SelectedItem o SelectedIndex. Si tiene los objetos que utilizó para llenar el cuadro combinado, puede usar SelectedItem.
Si no, puede obtener la colección de elementos (Elementos de propiedad) e iterar hasta que obtenga el valor que desea y usarlo con las otras propiedades.
Espero eso ayude.
Para mí esto solo funcionaba:
foreach (ComboBoxItem cbi in someComboBox.Items)
{
if (cbi.Content as String == "sometextIntheComboBox")
{
someComboBox.SelectedItem = cbi;
break;
}
}
MOD: y si tiene sus propios objetos como elementos configurados en el cuadro combinado, entonces sustituya el ComboBoxItem por uno de ellos como:
foreach (Debitor d in debitorCombo.Items)
{
if (d.Name == "Chuck Norris")
{
debitorCombo.SelectedItem = d;
break;
}
}
Por favor, intente de esta manera, funciona para mí:
Combobox1.items[Combobox1.selectedIndex] = "replaced text";
Puede decir comboBox1.Text = comboBox1.Items[0].ToString();
SelectedText es para obtener o establecer el texto real en el editor de cadenas para el elemento seleccionado en el cuadro combinado como se documenta here . Esto no se puede editar si configuras:
comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
Utilizar:
comboBox1.SelectedItem = "test1";
o:
comboBox1.SelectedIndex = comboBox1.Items.IndexOf("test1");
Si los artículos en su ComboBox son cadenas, puede intentar:
comboBox1.SelectedItem = "test1";
Suponiendo que su cuadro combinado no esté enlazado a datos, necesitará encontrar el índice del objeto en la colección "artículos" en su formulario y luego establecer la propiedad "indexado seleccionado" en el índice apropiado.
comboBox1.SelectedIndex = comboBox1.Items.IndexOf("test1");
Tenga en cuenta que la función IndexOf puede arrojar una opinión discutida si el elemento no se encuentra.
Suponiendo que test1, test2, test3 pertenecen a la colección comboBox1, la siguiente declaración funcionará.
comboBox1.SelectedIndex = 0;
Todos los métodos, trucos y líneas de configuración de código del elemento ComboBox no funcionarán hasta que el ComboBox tenga un elemento primario.
Utilicé KeyValuePair para el enlace de datos ComboBox y quería encontrar el artículo por valor, así que esto funcionó en mi caso:
comboBox.SelectedItem = comboBox.Items.Cast<KeyValuePair<string,string>>().First(item=> item.Value == "value to match");
esto funciona para mí .....
comboBox.DataSource.To<DataTable>().Select(" valueMember = ''" + valueToBeSelected + "''")[0]["DislplayMember"];
ListItem li = DropDownList.Items.FindByValue("13001");
DropDownList.SelectedIndex = ddlCostCenter.Items.IndexOf(li);
Para su caso, puede usar
DropDownList.Items.FindByText("Text");
_cmbTemplates.SelectedText = "test1"
o tal vez
_cmbTemplates.SelectedItem= _cmbTemplates.Items.Equals("test1");
combo.Items.FindByValue("1").Selected = true;
comboBox1.SelectedItem.Text = "test1";
- Enumerate ListItems en combobox
- Obtenga los mismos listindex set combobox
- Establezca listindex en el encontrado.
Pero si veo un código como un revisor de código, recomendaría reconsiderar todo el algoritmo del método.