@@ -759,44 +759,24 @@ public void ListViewGroupAccessibleObject_ExpandCollapseStateFromKeyboard_Return
759
759
Assert . True ( listView . IsHandleCreated ) ;
760
760
Assert . NotEqual ( IntPtr . Zero , listView . Handle ) ;
761
761
762
- // https://docs.microsoft.com/windows/win32/inputdev/wm-keyup
763
- // The MSDN page tells us what bits of lParam to use for each of the parameters.
764
- // All we need to do is some bit shifting to assemble lParam
765
- // lParam = repeatCount | (scanCode << 16)
766
- nint keyCode = ( nint ) Keys . Up ;
767
- nint lParam = 0x00000001 | keyCode << 16 ;
768
- User32 . SendMessageW ( listView , User32 . WM . KEYDOWN , keyCode , lParam ) ;
769
- User32 . SendMessageW ( listView , User32 . WM . KEYUP , keyCode , lParam ) ;
770
-
771
- keyCode = ( nint ) Keys . Left ;
772
- lParam = 0x00000001 | keyCode << 16 ;
773
- User32 . SendMessageW ( listView , User32 . WM . KEYDOWN , keyCode , lParam ) ;
774
- User32 . SendMessageW ( listView , User32 . WM . KEYUP , keyCode , lParam ) ;
762
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Up ) ;
763
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Left ) ;
775
764
776
765
Assert . Equal ( ListViewGroupCollapsedState . Collapsed , listViewGroup . GetNativeCollapsedState ( ) ) ;
777
766
Assert . Equal ( ExpandCollapseState . Collapsed , listViewGroup . AccessibilityObject . ExpandCollapseState ) ;
778
767
779
- keyCode = ( nint ) Keys . Left ;
780
- lParam = 0x00000001 | keyCode << 16 ;
781
- User32 . SendMessageW ( listView , User32 . WM . KEYDOWN , keyCode , lParam ) ;
782
- User32 . SendMessageW ( listView , User32 . WM . KEYUP , keyCode , lParam ) ;
768
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Left ) ;
783
769
784
770
// The second left key pressing should not change Collapsed state
785
771
Assert . Equal ( ListViewGroupCollapsedState . Collapsed , listViewGroup . GetNativeCollapsedState ( ) ) ;
786
772
Assert . Equal ( ExpandCollapseState . Collapsed , listViewGroup . AccessibilityObject . ExpandCollapseState ) ;
787
773
788
- keyCode = ( nint ) Keys . Right ;
789
- lParam = 0x00000001 | keyCode << 16 ;
790
- User32 . SendMessageW ( listView , User32 . WM . KEYDOWN , keyCode , lParam ) ;
791
- User32 . SendMessageW ( listView , User32 . WM . KEYUP , keyCode , lParam ) ;
774
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Right ) ;
792
775
793
776
Assert . Equal ( ListViewGroupCollapsedState . Expanded , listViewGroup . GetNativeCollapsedState ( ) ) ;
794
777
Assert . Equal ( ExpandCollapseState . Expanded , listViewGroup . AccessibilityObject . ExpandCollapseState ) ;
795
778
796
- keyCode = ( nint ) Keys . Right ;
797
- lParam = 0x00000001 | keyCode << 16 ;
798
- User32 . SendMessageW ( listView , User32 . WM . KEYDOWN , keyCode , lParam ) ;
799
- User32 . SendMessageW ( listView , User32 . WM . KEYUP , keyCode , lParam ) ;
779
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Right ) ;
800
780
801
781
// The second right key pressing should not change Expanded state
802
782
Assert . Equal ( ListViewGroupCollapsedState . Expanded , listViewGroup . GetNativeCollapsedState ( ) ) ;
@@ -829,12 +809,12 @@ public void ListViewGroupAccessibleObject_GroupCollapsedStateChanged_IsExpected_
829
809
listView . GroupCollapsedStateChanged += ( _ , e ) => eventGroupIndices . Add ( e . GroupIndex ) ;
830
810
831
811
// Navigate to the second group
832
- SimulateKeyPress ( Keys . Down ) ;
812
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Down ) ;
833
813
834
814
if ( firstGroupSate == ListViewGroupCollapsedState . Collapsed )
835
815
{
836
816
// This action is necessary to navigate to the second group correctly in this specific case.
837
- SimulateKeyPress ( Keys . Up ) ;
817
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Up ) ;
838
818
}
839
819
840
820
// Simulate multiple selection of several groups to test a specific case,
@@ -844,7 +824,7 @@ public void ListViewGroupAccessibleObject_GroupCollapsedStateChanged_IsExpected_
844
824
item3 . Selected = true ;
845
825
846
826
// Simulate the second group collapse action via keyboard.
847
- SimulateKeyPress ( Keys . Left ) ;
827
+ KeyboardHelper . SimulateKeyPress ( listView , Keys . Left ) ;
848
828
849
829
Assert . Equal ( firstGroupSate , group1 . GetNativeCollapsedState ( ) ) ;
850
830
Assert . Equal ( firstGroupSate , group1 . CollapsedState ) ;
@@ -862,18 +842,6 @@ public void ListViewGroupAccessibleObject_GroupCollapsedStateChanged_IsExpected_
862
842
// are still selected after keyboard navigation simulations.
863
843
Assert . Equal ( 3 , listView . SelectedItems . Count ) ;
864
844
Assert . True ( listView . IsHandleCreated ) ;
865
-
866
- void SimulateKeyPress ( Keys key )
867
- {
868
- // https://docs.microsoft.com/windows/win32/inputdev/wm-keyup
869
- // The MSDN page tells us what bits of lParam to use for each of the parameters.
870
- // All we need to do is some bit shifting to assemble lParam
871
- // lParam = repeatCount | (scanCode << 16)
872
- nint keyCode = ( nint ) key ;
873
- nint lParam = 0x00000001 | keyCode << 16 ;
874
- User32 . SendMessageW ( listView , User32 . WM . KEYDOWN , keyCode , lParam ) ;
875
- User32 . SendMessageW ( listView , User32 . WM . KEYUP , keyCode , lParam ) ;
876
- }
877
845
}
878
846
879
847
[ WinFormsTheory ]
0 commit comments