차라리 사은품을 주지 말라고 하고 싶다.
아오...
우유 등 1+1/1+2 상품도 마찬가지.
Friday, February 28, 2014
Tuesday, February 25, 2014
Saturday, February 8, 2014
ListView 아이템을 Drag and Drop으로 순서 바꾸기 Reorder ListViewItem
놀랍게도 ListView 아이템은 드래그앤드랍이 기본으로는 안 되는데, 더 놀라운 것은 이것이 버그라는 것이다. (오작동뿐 아니라 코드를 빠뜨려서 작동 안 하는 것도 버그이긴 하지...) 1)
http://support.microsoft.com/kb/822483/en-us
위 링크에서 제공하는 코드를 적당히 붙이는 것만으로도 drag & drop으로 순서를 변경하는 작업이 잘 된다.
단, ListViewItem.Name은 보존되지 않는다. 이러면 ListView.Items.RemoveByKey(string=Name)를 할 수 없게 된다.
이는 아마 ListView.Items 내에서의 순서 이동은, 실제로는 ListViewItem 객체의 복사(Clone()이 호출된다) 후 원본 ListViewItem 객체 삭제이므로, container 내에 같은 Name의 객체를 두 개 이상 가질 수 없기 때문일 것이다.
그래서 다음과 같이 Name을 재지정해야 한다.
void listView1_DragDrop(object sender, DragEventArgs e)
{
//(전략)
ListViewItem insertItem = (ListViewItem)dragItem.Clone();
listView1.Items.Insert(itemIndex, insertItem);
listView1.Items.Remove(dragItem);
//dragItem을 Remove한 뒤 다시 설정해 줌:
insertItem.Name = dragItem.Name;
}
물론 처음부터 Name을 쓰지 않고 있었다면 해 주지 않아도 된다.
참고로, 위 코드를 ListView에 적용하기 위해 핸들러를 만들어야 하는 이벤트는 ItemDrag, DragEnter, DragDrop의 3개이다.
IDE 디자이너의 '속성' 창에서 찾을 수 있긴 한데,
DragDrop, DragEnter는 "끌어서 놓기" 분류에,
ItemDrag는 "작업" 분류에 들어가 있어 찾기가 매우 어렵다.
그냥 코드로 치는 게 (적절히 tab하면 핸들러도 만들어 주니까) 편하다.
-----------------------
1) 의도된 사항(design)이라고 답변한 것이다.
http://support.microsoft.com/kb/822483/en-us
위 링크에서 제공하는 코드를 적당히 붙이는 것만으로도 drag & drop으로 순서를 변경하는 작업이 잘 된다.
단, ListViewItem.Name은 보존되지 않는다. 이러면 ListView.Items.RemoveByKey(string=Name)를 할 수 없게 된다.
이는 아마 ListView.Items 내에서의 순서 이동은, 실제로는 ListViewItem 객체의 복사(Clone()이 호출된다) 후 원본 ListViewItem 객체 삭제이므로, container 내에 같은 Name의 객체를 두 개 이상 가질 수 없기 때문일 것이다.
그래서 다음과 같이 Name을 재지정해야 한다.
void listView1_DragDrop(object sender, DragEventArgs e)
{
//(전략)
ListViewItem insertItem = (ListViewItem)dragItem.Clone();
listView1.Items.Insert(itemIndex, insertItem);
listView1.Items.Remove(dragItem);
//dragItem을 Remove한 뒤 다시 설정해 줌:
insertItem.Name = dragItem.Name;
}
물론 처음부터 Name을 쓰지 않고 있었다면 해 주지 않아도 된다.
참고로, 위 코드를 ListView에 적용하기 위해 핸들러를 만들어야 하는 이벤트는 ItemDrag, DragEnter, DragDrop의 3개이다.
IDE 디자이너의 '속성' 창에서 찾을 수 있긴 한데,
DragDrop, DragEnter는 "끌어서 놓기" 분류에,
ItemDrag는 "작업" 분류에 들어가 있어 찾기가 매우 어렵다.
그냥 코드로 치는 게 (적절히 tab하면 핸들러도 만들어 주니까) 편하다.
-----------------------
1) 의도된 사항(design)이라고 답변한 것이다.
Sunday, February 2, 2014
Age of Empires: Rise of Rome 고해상도로 플레이하기
Voobly라는 데를 발견했다!
설치하고, 가입하고 적당한 로비에 들어가서 방을 만든 후 플레이하면 된다.
http://www.voobly.com/games/view/Age-of-Empires
여기는 Age of Empires 로비이다.
기본적으로 멀티플레이 모드가 실행되지만
싱글 플레이도 가능하다.
http://www.voobly.com/pages/view/310
따라서 캠페인도 고해상도로 플레이 가능.
Rise of Rome 로비는 따로 있으니 주의. Rise of Rome으로 해야 EMPIRESX.EXE가 실행된다.
설치하고, 가입하고 적당한 로비에 들어가서 방을 만든 후 플레이하면 된다.
http://www.voobly.com/games/view/Age-of-Empires
여기는 Age of Empires 로비이다.
기본적으로 멀티플레이 모드가 실행되지만
싱글 플레이도 가능하다.
http://www.voobly.com/pages/view/310
따라서 캠페인도 고해상도로 플레이 가능.
Rise of Rome 로비는 따로 있으니 주의. Rise of Rome으로 해야 EMPIRESX.EXE가 실행된다.
Subscribe to:
Posts (Atom)
창 핸들을 만드는 동안 오류가 발생했습니다
System.ComponentModel.Win32Exception was unhandled MyForm w = new MyForm IntPtr handle = wnd.Handle; // Exception occurs here class MyFo...
-
텍스트박스에서 엔터를 치면 자동으로 입력되게 하려고 keyup 이벤트 핸들러를 등록했다. 잘 동작하는 듯했는데 alert창을 닫아도 닫아도 계속 열리는 것이다. 크롬이어서 다행이지 IE였으면 무한히 열렸을 거야...스페이스바로 눌러보길 잘했...
-
진짜 되는 건 아니고 흉내낼 수는 있다. 새 창을 누르면 아무 것도 안 변한 것 같지만 PowerPoint 창 제목이 바뀌어 있다: 프레젠테이션1:2에서 :2 부분이 같은 파일을 연 창 여러 개 중 2번째라는 뜻이다('프레...
-
MathJax è Word MS Word 2007부터는 MathML을 문서에 바로 붙여넣을 수 있다. 이 블로그의 거의 대부분의 수식은 MathJax로 작성되어 있는데, 오른쪽 버튼 클릭하고 메뉴에서 MathML 또는 TeX 형식으로 ex...