흐물이
20
2018-11-28 13:40:33 작성 2018-11-28 16:12:48 수정됨
0
230

ValuePattern에 대하여 질문합니다.



        AutomationFocusChangedEventHandler afceh;

        AutomationElement target_ae;

        ValuePattern target;

        Hangul hangul;

        private void StoreSelect_Load(object sender, EventArgs e)
        {
            afceh = new AutomationFocusChangedEventHandler(FocusChanged);

            Automation.AddAutomationFocusChangedEventHandler(afceh);
        }

        private void FocusChanged(object sender, AutomationFocusChangedEventArgs e)

        {
            
            AutomationElement ae = AutomationElement.FocusedElement; //현재 포커스를 받고 있는 AutomationElement(UI요소)를 가져옵니다.

            if (ae == target_ae) { return; }

            if (ae.Current.ProcessId == Process.GetCurrentProcess().Id)//현재 포커스를 받고있는 UI요소와 지금 포커스를 받은 UI요소의 ID값이 같은지비교 (같은요소인지 비교)
            { 
                return;

            }

            if (ae.Current.IsEnabled) //활성화 확인

            {

                object obj;

--------->    if (ae.TryGetCurrentPattern(ValuePattern.Pattern, out obj))

                {

                    SetTarget(ae, obj);
                        
                }

                else

                {

                    target_ae = null;

                    target = null;
                        
                }

            }

            else

            {

                target_ae = null;

                target = null;
                    
            }
            
        }

현재 제가 TextBox와 Button을 이용해 화상키보드를 만드는 것에 대하여 공부하다가

-> 로 표시해둔 36번째 줄에서 현재 포커싱된 컨트롤의 패턴값이 ValuePattern이라면

오브젝트로 반환하는 부분이 계속 반환되지 않고 있습니다.

1. 컨트롤의 패턴값이 ValuePattern이 아니라 그런것인지 아니면 다른 문제가 있는지

2. 만약 TextBox나 Button으로했을때 ValuePattern이 아닌 다른 패턴을 사용해야한다면

그 이유는 무엇인지, 어떤 패턴을 써야하는지 궁금합니다..


추가로 소스코드가 더 필요한 부분이있다면 바로 올려드리겠습니다.

0
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.