@@ -537,7 +537,12 @@ public async Task ListView_Click_On_Second_Column_Does_Not_Alter_CheckBoxesAsync
537
537
{
538
538
await RunTestAsync ( async ( form , listView ) =>
539
539
{
540
+ listView . BeginUpdate ( ) ;
540
541
InitializeItems ( listView , View . Details , virtualModeEnabled : false , checkBoxesEnabled : true ) ;
542
+ listView . EndUpdate ( ) ;
543
+
544
+ Assert . True ( listView . Items . Count > 0 ,
545
+ $ "Expected ListView to contain at least one item, but found { listView . Items . Count } .") ;
541
546
542
547
foreach ( ListViewItem item in listView . Items )
543
548
{
@@ -552,24 +557,26 @@ await form.InvokeAsync(() =>
552
557
Application . DoEvents ( ) ;
553
558
} ) ;
554
559
555
- Assert . True ( listView . Items . Count > 0 ,
556
- $ "Expected ListView to contain at least one item, but found { listView . Items . Count } .") ;
557
- Assert . True ( listView . Items [ 0 ] . SubItems . Count > 1 ,
558
- $ "Expected first item to have more than one subitem, but found { listView . Items [ 0 ] . SubItems . Count } .") ;
559
-
560
- Point listViewCenter = GetCenter ( listView . RectangleToScreen ( listView . Items [ 0 ] . SubItems [ 1 ] . Bounds ) ) ;
561
- await MoveMouseAsync ( form , listViewCenter ) ;
562
-
563
- await InputSimulator . SendAsync (
564
- form ,
565
- inputSimulator => inputSimulator . Keyboard . KeyDown ( VIRTUAL_KEY . VK_SHIFT )
566
- . Mouse . LeftButtonClick ( ) ) ;
567
- listViewCenter = GetCenter ( listView . RectangleToScreen ( listView . Items [ 2 ] . SubItems [ 1 ] . Bounds ) ) ;
568
- await MoveMouseAsync ( form , listViewCenter ) ;
569
- await InputSimulator . SendAsync (
570
- form ,
571
- inputSimulator => inputSimulator . Mouse . LeftButtonClick ( )
572
- . Keyboard . KeyUp ( VIRTUAL_KEY . VK_SHIFT ) ) ;
560
+ if ( listView . Items . Count > 0 && listView . Items [ 0 ] . SubItems is not null && listView . Items [ 0 ] . SubItems . Count > 1 )
561
+ {
562
+ Point listViewCenter = GetCenter ( listView . RectangleToScreen ( listView . Items [ 0 ] . SubItems [ 1 ] . Bounds ) ) ;
563
+ await MoveMouseAsync ( form , listViewCenter ) ;
564
+
565
+ await InputSimulator . SendAsync (
566
+ form ,
567
+ inputSimulator => inputSimulator . Keyboard . KeyDown ( VIRTUAL_KEY . VK_SHIFT )
568
+ . Mouse . LeftButtonClick ( ) ) ;
569
+ listViewCenter = GetCenter ( listView . RectangleToScreen ( listView . Items [ 2 ] . SubItems [ 1 ] . Bounds ) ) ;
570
+ await MoveMouseAsync ( form , listViewCenter ) ;
571
+ await InputSimulator . SendAsync (
572
+ form ,
573
+ inputSimulator => inputSimulator . Mouse . LeftButtonClick ( )
574
+ . Keyboard . KeyUp ( VIRTUAL_KEY . VK_SHIFT ) ) ;
575
+ }
576
+ else
577
+ {
578
+ throw new InvalidOperationException ( "ListView refresh failed: insufficient items or subitems." ) ;
579
+ }
573
580
574
581
foreach ( ListViewItem item in listView . Items )
575
582
{
0 commit comments