SendKeys.Send()에서 확인란을 확인하는 Wazap

2745 단어 WindowsFormC#.NETVB
수수하게 조사해도 좀처럼 발견되지 않았기 때문에

👇※기사의 대상자와 배경을 추기했습니다. 🙇‍♀️
그대로 타이틀대로 SendKeys.Send() 메소드를 사용해 체크 박스를 체크하는 방법이 됩니다.
업무에서 사용하고 있는 Windows Form의 어플리케이션의 조작을 자동화하고 싶다고 하는 이야기가 있어, 여러 가지 요건은 있었지만 최종적으로는 인간이 하고 있는 키보드 조작을 그대로 에뮬레이트 해 재현하는 형태를 취해 네.

타이틀에 대한 결론으로서는 체크 박스에 포커스되고 있는 상태에서 ☟로 k입니다.
SendKeys.Send(" ")

단지, 보통 키보드 조작으로 체크 박스를 체크하도록(듯이) SPACE 키의 입력을 에뮬레이트 하고 싶습니다만 참조 Enter 그러면 SPACE 라는 예외가 발생합니다.

반각 공백 문자로 SendKeys.Send("{SPACE}") 키의 입력을 에뮬레이트 할 수 있다는 것에 관해서는 레퍼런스 본문중의 아래의 기술로부터 추찰할 수 있을까라고 생각합니다. 이쪽에 대해서는 나름대로 그런 식으로 해석했다는 것이므로 해석 차이가 있으면 지적해 주세요🙇‍♂️

각 키는 하나 이상의 문자로 표시됩니다. 단일 키보드 문자를 지정하려면 문자 자체를 사용합니다. 예를 들어, 문자 A 를 나타내려면 , 캐릭터 라인 "A"를 메소드에 건네줍니다.

이쪽도

ENTER, TAB, 문자 대신 액션을 나타내는 키 등 키를 누를 때 표시되지 않는 문자를 지정하려면 다음 표의 코드를 사용합니다.

이것으로부터 , A 의 키와 캐릭터 라인 "A"의 대응과 같이 System.ArgumentException: 'キーワード "SPACE" は有効ではありません。' 키가 대응하는 캐릭터 라인은 ""가 되어, 대응하는 캐릭터 라인이 존재하면 SPACE 등과 같다 처럼 특수한 코드 SPACE 의 목록에는 존재하지 않는 것은 당연하다, 라고 해석했습니다.

일단 아래와 같은 환경하에서 Enter 로 체크 박스에 체크할 수 있는 것을 확인했습니다.
  • Visual Studio 2019 (16.5.0)
  • Windows Forms App (.NET Core) C#
  • .NET Core 3.1

  • 아래 그림과 같은 적절한 양식을 만들고 {Enter} SendKeys.Send(" ") 이벤트 이벤트 처리기에서 button1 Click 를 클릭할 때마다 checkBox1 의 체크의 온 오프가 전환됩니다.



    button1_Click
    private void button1_Click(object sender, EventArgs e)
    {
        SendKeys.Send("{TAB}");
        SendKeys.Send(" ");
    }
    

    좋은 웹페이지 즐겨찾기