SelectedValue будет работать, только если вы установили ValueMember для списка.
Далее, даже если вы установите ValueMember, selectedValue не будет работать, если ваш ListBox.Sorted = true
Проверьте мой пост на Установка выбранного элемента в ListBox без зацикливания
Вы можете попробовать один из следующих подходов:
lb.SelectedValue = fieldValue;
lb.SelectedIndex = lb.FindStringExact(fieldValue);
Это универсальный метод для всех списков. Ваша реализация будет меняться в зависимости от того, что вы привязываете к списку. В моем случае это DataTable.
private void SetSelectedIndex(ListBox lb, string value)
{
for (int i = 0; i < lb.Items.Count; i++)
{
DataRowView dr = lb.Items[i] as DataRowView;
if (dr["colName"].ToString() == value)
{
lb.SelectedIndices.Add(i);
break;
}
}
}