[C#] Add ListViewItem geeft Exception

Pagina: 1
Acties:

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Topicstarter
Als ik een ListViewItem probeer toe te voegen aan een ListView krijg ik een ArgumentOutOfRangeException. Er word gebreaked in de debugger, als ik de Exception instelling anders instel namelijk:
When the Exception is Throw: Continue
If the Exception is not handled: Break into debugger
Dan is er niets aan de hand en gaat hij gewoon verder. Alleen de applicatie bevriest wel heel even en hieraan merk je dus dat exception wel gegooid word, maar word door de ListView control zelf gehandeled. Alleen in imho is dit ransig. Ik heb hier nog nooit eerder last van gehad of het is me nog nooit opgevallen.

Ik heb de ImageList al onbonden van de ListView control en de overige events zijn ook niet meer gewired.

C#:
1
2
3
4
5
6
7
8
9
10
/// <summary>
/// Adds a <c>Table</c> to the GUI.
/// </summary>
/// <param name="table">The <c>Table</c> to add to the GUI.</param>
private void addTableToGUI(Table table)
{
    //ListViewItem tableItem = new ListViewItem(table.Name);
    //tableItem.Tag = table;
    lvTables.Items.Add(table.Name);
}

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Is dat de code die de exceptie veroorzaakt ?
Wat is de stacktrace van die exception, en de message ?

https://fgheysels.github.io/


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Topicstarter
lvTables.Items.Add(table.Name) veroorzaakt de exception en ik kan er geen stacktrace uitkrijgen omdat de exception optreed in NonUserCode en hij word hier ook gehandled.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 08-05 11:55

mulder

ik spuug op het trottoir

Klinkt misschien simpel, maar als je de table.Name eerst in een string var zet ofzo?

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Je add die items ook niet in een andere thread ofzo ?

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Je hebt ook nergens een SelectedIndex- of SelectedItemChanged EventHandler oid die ervoor zorgt dat eea gedaan wordt dat die exceptie gegooid wordt?

https://fgheysels.github.io/


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Topicstarter
whoami schreef op vrijdag 08 april 2005 @ 12:25:
Je add die items ook niet in een andere thread ofzo ?
Ik creeer niet een anderen Thread, maar de method word inderdaad wel aangeroepen in een event:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
protected virtual void OnTableAdded(Table value)
{
    if(TableAdded != null)
    {
        Control target = TableAdded.Target as Control;
        
        if(target != null && target.InvokeRequired)
        {
            target.Invoke(TableAdded, new object[] {this, value as Table});
        }
        else
        {
            TableAdded(this, value as Table);
        }
    }
}


Deze method zit gewired aan het event en roep dus weer die private method aan die problemen geeft:
C#:
1
2
3
4
private void Tables_TableAdded(object sender, Table value)
{
    addTableToGUI(value);
}


Dit is denk ik ook het probleem, want als ik gewoon in het Load even van een Form deze method aanroep is er niets aan de hand.
whoami schreef op vrijdag 08 april 2005 @ 12:33:
Je hebt ook nergens een SelectedIndex- of SelectedItemChanged EventHandler oid die ervoor zorgt dat eea gedaan wordt dat die exceptie gegooid wordt?
Nee, ik heb alle anderen events even ontkoppeld.

[ Voor 11% gewijzigd door pjvandesande op 08-04-2005 12:42 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Ik zie niet direct in hoe die code voor die exception zou kunnen zorgen....

Blijkbaar wordt er toch ergens een ListViewItem ofzo uitgelezen, dat niet bestaat.

https://fgheysels.github.io/

Pagina: 1