Om FindItemWithText inte hittar någon ListViewItem som matchar din sökning så returneras null. Efter det så kollar du om lvItem.SubItems[1] är null men vad händer om lvItem är null (FindItemWithText kanske inte hittade någon dublett)? Då försöker du komma åt SubItems[1] på ett objekt som är null. Kommer inte gå så bra va? :)
I ditt andra exempel har du ju mer eller mindre gjort en egen enkel FindItemWithText fast du kollar inte alla ListViewItems innan du lägger till myNewItem. Om du gör enligt ditt andra exempel så måste du först iterera genom alla items i din lista och kolla om något av dem är detsamma som du försöker lägga till. Om det inte finns någon dublett, lägg till en ny ListViewItem i listan.
Du anropar FindItemWithText för att hitta en nod i listView1 som innehåller texten myNewItem.Text. Om inte FindItemWithText hittar något som innehåller det du söker kommer den att returnera null. Dvs. lvItem kommer att vara null.
I if-satsen skriver du lvItem.SubItems[1] men om lvItem är null så finns inte det någon SubItems och du kommer att få ett NullReferenceException.
Din if-sats ska vara:
if(lvItem == null)
// Lägg till noden
else
// Noden fanns redan
listView1.View = View.Details;
listView1.Columns.Clear();
listView1.Refresh();
listView1.Columns.Add("Akord ifrån " + cmbOrginal.Text, 76, HorizontalAlignment.Left);//här blir det fel
listView1.Columns.Add("Akord till " + cmbNydur.Text, 76, HorizontalAlignment.Left);
string sUtokad = cmboUtokad.Text;
if (cmboUtokad.Text == "inget")
sUtokad = "";
else
sUtokad = cmboUtokad.Text;
ListViewItem myNewItem = new ListViewItem();
myNewItem.Text = cmbAckord.Text + sUtokad;
if (listView1.Items.Count == 0)
{
myNewItem.SubItems.Add(txtNyttAckord.Text);
listView1.Items.Add(myNewItem);
}
else
{
ListViewItem lvItem = listView1.FindItemWithText(myNewItem.Text, false, 0, true);
if (lvItem == null)
{
myNewItem.SubItems.Add(txtNyttAckord.Text);
listView1.Items.Add(myNewItem);
}
else
{
toolStripStatusAktion.Text = "Ackordet finns redan";
}
}
Error: Objectsreferensen har inte angetts till en instans av ett object.
Debugen reagerar tydligen när jag lägger till mina columner. Är det galet som
jag gör??? :r
[EDIT]
Jag la koden för kolumnerna i en annan klas och då löste det sig
150 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe