본문 바로가기

ETC Programmings

[C#] HtmlElement 클래스 ScrollIntoView() 메소드 사용

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
귀찮아를 만들면서 포인트를 둬야할 부분중에 하나가.. -_-; 자동 스크롤이 되었으면 좋겠다.. 라는 점이었다. 서버쪽의 소스를 알수도 없는데다가.. 서버쪽에 지장을 안주고 웹 브라우저만을 통해서 파일을 찾아 갔으면 좋겠는데... 라는 점에서 시도를 해었는데.. ㅎㅎ

어쨌건.. HtmlElement 클래스에 있는 ScrollIntoView 라는 메소드가 그 역할을 대신할 수 있었다. 요녀석을 찾아내기까지는 굉장한 시간이 걸렸다 -_-;; 처음에 WebBrowser 라는 클래스 객체에서 부터 Document 라는 자원을 얻어와야 한다.. 얘는 한마디로 웹페이지의 HTML 소스코드를 가져오는 역할을 한다. 그래서 태그 단위나 ID 단위로 가져 올 수 있다. HTML 코드 자체도 구조화가 되어 있기 때문에 가능한 거라구 생각한다. 그런 의미에서 XML은 참 신비롭다 +ㅅ+..

여튼..이렇게 Document 를 가져오면.. Enumeration 객체를 얻어온다. 자세한건 모르겠지만.. 역시 구조화된 HTML 문서를 열거해 놓은 객체 정도로 생각하면 될것 같다. 여튼 이를 통해서 메소드를 호출하게 되었다.

coll 객체는 getElementSetByTag 였나? 라는 메소드를 사용해서.. 하여튼.. 태그 안에 있는 애들은 다 가져 왔다. 하부에 있는 태그들중에서 내가 원하는 정보는 13 이라는 단위로 건너 뛰기 때문에 저와 같은 코딩을 하게 되었다. 파라미터 값으로 넣는 bool 값은 웹 브라우저에 보이는 위치를 Top 으로 할지 Bottom으로 할지에 대한 선택이다.

false로 했더니 Bottom으로 되더이다... 'ㅅ' 별거 아니라고 여겼지만.. 그런 함수가 있을거라고 추측은 했지만..
어디 있을것이다에 대한건 솔직히 만든자만이 안다 -_-;; 열심히 뒤져보고 눈에 익히자;

        private void startWork_Click(object sender, EventArgs e)
        {
          coll[13 * count].ScrollIntoView(false);
          if (count < list.Count)
            {
                Work currentWork;
                currentWork = list[count];
                idLabc.Text = currentWork.getId();
                dpLabc.Text = currentWork.getBaseText();
                newLabc.Text = currentWork.getNewText();
                if (count != list.Count)
                    count++;
                if (currentWork.getDateTime() == null)
                    currentWork.setDateTime(timeStamp());
            }
            else
                MessageBox.Show("끝났소.. 정신차리시오~");
        }