I am working on a listbox but I need some buttons to be enabled depending on the selectedItem, so I coded this:
private void lstLSD_SelectedIndexChanged(object sender, EventArgs e)
{
registroSeleccionado = (Registro)this.lstLSD.SelectedItem;
label2.Text = "Registro " + registroSeleccionado;
string item = lstLSD.SelectedItem.ToString();
if (item.StartsWith("01")) { button1.Enabled = true; } else { button1.Enabled = false; };
if (item.StartsWith("02")) { button3.Enabled = true; } else { button3.Enabled = false; };
if (item.StartsWith("03")) { button4.Enabled = true; } else { button4.Enabled = false; };
if (item.StartsWith("04")) { button5.Enabled = true; } else { button5.Enabled = false; };
}
But, I am loosing the ability to modify that same selectedItem later..
private void btnCrear_Click(object sender, EventArgs e)
{
if (txtR1Modificado.TextLength >0)
{
Registro modifReg = new Registro()
{
Registro1 = txtR1Modificado.Text
};
int index = Form1.formInicialInstance.lstB.SelectedIndex;
Form1.formInicialInstance.lstB.Items.RemoveAt(index);
Form1.formInicialInstance.lstB.Items.Insert(index, modifReg);
Form1.formInicialInstance.lstB.SetSelected(index, true);
txtR1Modificado.Clear();
}
}
And this is the error I am getting: System.NullReferenceException: 'Referencia a objeto no establecida como instancia de un objeto.'
System.Windows.Forms.ListBox.SelectedItem.get devolvió null.
Any Idea? Thanks for your help!