|
DBGrid가 클릭 이벤트를 받아서 레코드 포인터가 움직이는 현상 같은데요.
당연히 Scroll 이벤트가 발생할 때 Post가 호출 되므로, 자동으로 편집 모드가 (Edit 모드) 중단되고
레코드 포인터가 이동하겠지요.
단순하게.. 편집 모드로 들어가면...
DBGrid의 Enable속성을 False 로 바꾸면.. 되지 않을까요?
훔...
수수께끼 님이 쓰신 글 :
: 특정버튼을 눌러서 데이터를 편집할때 dbgrid의 locate를 고정시키려고 합니다.
:
: 지금 현재는 편집버튼을 눌러서 데이터를 편집할때 dbgrid의 편집하고 있는 레코드가 아닌 다른 레코드를 클릭하면
:
: 그쪽 레코드로 레코드포인터가 움직입니다. 오랜시간동안 검색을 통해서 grid에서 레코드포인터의 위치를 갖고있는게
:
: locate라는 메소드 라는걸 알았습니다.
:
: 근데 여기까지네요 ㅡ,.ㅡ
:
: 어떻게 응용을 해야할지 모르겠습니다.
:
: query를 사용하여 ms access mdb 파일의 테이블을 불러서 dbgrid에 뿌리고 있구요.
:
: dbnavigator를 사용하여 dbgrid 안에 있는 데이터를 수정, 편집하고 있습니다.
:
: "편집" 이라고 이름붙인 버튼을 누르면 dbgrid->readonly = false;가 되서 dbgrid의 내용을 바꿀수 있구요.
:
: 내용을 바꾼후에 dbnavigator의 편집적용 버튼을 눌러서 편집을 종료하는 코드를 짰습니다.
:
: 편집이 종료되면 dbgrid->readonly = true; 가 되서 dbgrid안에 내용을 바꿀수 없구요.
:
: 문제는 편집모드가 되서 dbgrid의 내용을 수정할때 레코드포인터의 모양이 세모 모양에서 ][ <-- 이런 모양으로
:
: 바뀌는데 여기서 다른 레코드를 클릭하면 레코드포인터의 모양이 다시 세모로 바뀐다는거죠.
:
: 즉, 이게 무슨말이냐 하면요
:
: 편집모드가 끝나지도 않았는데 다른 레코드를 클릭하면 강제로 편집모드가 끝난다는거죠.
:
: 지금 제가 짠 코드가 이런상황이 되면 엄청 꼬이는 상황이거든요.
:
: 그래서 생각한게 편집모드에선 마우스로 클릭을 하던 키보드 방향키로 이동을 하던 레코드포인터의 위치를 고정시키는겁니다.
:
: 그러려면 현재의 레코드포인터의 위치를 기억했다가 편집모드일땐 그 위치로 고정을 시켜야겠죠?
:
: 거기에 관련된 메소드가 locate라는걸 검색을 통해 알아냈다 이겁니다.
:
: 근데 사용법을 몰라서...ㅡ,.ㅡ
:
: 아래에도 같은질문을 올렸는데 답변주신 김문제님이 질문의 요지를 잘 모르겠다고 하시더라구요.
:
: 저 이거 시간이 없어서 빨리 해야되는 상황이라 이렇게 똑같은 질문을 다시 올리면서 답변을 구하고 있습니다.
:
: 아시는분들은 간단하게라도 답변좀 부탁드리겠습니다......
|