posted by 권오성의 Biomedical Engineering 2007. 10. 31. 17:33
이 문제때문에 하루종일 헤맷네요.

이건 라이센스가 있는 상용컴포넌트를 사용했을 때의 기록이 남아서입니다.

이 라이센스 부분을 모조리 삭제하시면 해결됩니다.

\Properties 밑에 "licenses.licx"에 들어있는 정보를 모조리 삭제합니다.

and then... 빌드합니다. ^^
posted by 권오성의 Biomedical Engineering 2007. 10. 30. 11:49
권오성기자
dhtjd2@daum.net
인천의 중견 건설업체인 효명건설이 29 일 1차 부도가 났다.

29일 업계에 따르면 효명건설은 이날 오후 5시 주거래은행인 외환은행에 돌아온 당좌어음 27억원을 막지 못해 1차 부도를 냈다.

효명건설은 지난 6월 문을 연 충북 청원군 부용면 청원 효명온천스파이스에 자금이 묶이면서 그동안 상당한 자금압박을 받아오다 부도를 맞은 것으로 전해지고 있다.

효명건설은 다음달 11일까지 추가로 110억원의 당좌어음을 막아야 해 이 때까지 자금을 마련하지 못하면 최종부도가 불가피할 전망이다.

업계 한 관계자는 "효명건설이 온천사업에 투자하면서 자금사정이 어렵다는 이야기가 나돌긴 했으나 견실한 기업이라 걱정하지 않았다"며 "효명의 부도로 지역 건설업계에 미치는 영향이 클 것으로 보인다"고 말했다.
효명건설 한 관계자는 "지난 6월 시작된 청원 효명 온천스파이스에 500억원 정도를 투자해 자금이 묶여 있는 상황이라 은행으로 돌아온 당좌를 막기는 현재로선 역부족"이라며 "법원에 법정관리 신청을 검토 중에 있다"고 말했다.

효명건설은 송도국제도시 국제업무지구 E6블록 특급호텔 건립과 인천대 송도신캠퍼스 및 인천대교 연결도로 4공구 토공/구조물 공사 등 굵직한 사업에 참여하고 있어 이들 사업의 차질이 우려된다. 효명건설은 10월 현재 자본금 45억 9천645만원이다.
posted by 권오성의 Biomedical Engineering 2007. 10. 12. 12:31
선예(19세)
출생 : 1989년 7월 11일 
직업 : 국내가수
소속그룹 : 원더걸스
소속 : JYP엔터테인먼트

현아(16세)
출생 : 1992년 6월 6일
직업 : 국내가수
소속그룹 : 원더걸스
소속 : JYP엔터테인먼트

선미(16세)
출생 : 1992년 5월 2일
직업 : 국내가수
소속그룹 : 원더걸스
소속 : JYP엔터테인먼트

소희(16세)
출생 : 1992년 6월 27일
직업 : 국내가수
소속그룹 : 원더걸스
소속 : JYP엔터테인먼트

예은(19세)
출생 : 1989년 5월 26일
직업 : 국내가수
소속그룹 : 원더걸스
소속 : JYP엔터테인먼트


이건 현아양 탈퇴전입니다^^

이름:유빈(김유빈)

       출생:1988년

      직업:국내가수

      소속:원더걸스

    신장:163 cm, 45kg 

   출연작: 2007 오소녀


이건 새로 들어온 유빈양 프로필이구요^

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지

posted by 권오성의 Biomedical Engineering 2007. 10. 10. 18:14

이유 모음한것입니다 출처는 네이버 지식인입니다.

- 답변1 -

(방금온소식)매니아 지금 중국의 창리안 <- 중국 메플 랭킹 1위라는데;;
이사람이 한국 메플 어떤지볼려고 현질할려고 매니아 털었다는데;; 저사람 계좌로 돈달라고 협박한데요,,
으이구 이짱캐세키들 먹고 살짓없어서 짱캐질ㅡㅡ 어제부터 사투중이라는데 매니아 회사옮겨야하나?
거의 반정도는 망햇다보시면됩니다. 제가 오늘 아침에 잠깐되서 들어갓는데;
마일리지는 31만있엇는데;;  607원남아있었습니다. 그래서 사이버수사대에 신고하니깐 지금 비상이라고
일단 찾아본다는데 ㅅㅂ.. 마일리지는일딴 깨끗히 잊어야할듯

-답변2-

지금접속안되구요..

아이템매니아 입금도 안됩니다

상담원연결 해봤더니 접촉장애인가 있다고 적어도8시는 넘어야 된다고하더라구요

아이템베이는아이템매니아 안들어가지니까 사람들이 몰려서

아이템베이도 안들어가지는거에요..


-답변3-

솔직히 점검은 아닌것 같습니다...

지금 이런 현상이 연달아서 계속 일어나는걸 보면

단순히 접속자 폭주로 인한 서버다운 같은건 아니라고 생각합니다.

계속 누군가에게 해킹을 당하는것 같네요...


-답변4-              [거짓루머인가??]

아이템베이 및 매니아 자체서버에 이상이생긴게 아닙니다.

아이템베이뿐만 아니라 북미의 거대 아이템거래사이트 IGE와 EBAY(옥션)도

똑 같은 증상입니다. 몇일전 중국의 해커로부터 협박 메세지가 있었습니다.

머 저희 사이트는 아직 비공개된 사이트이기에 준비중인데 지금 각나라별로

아이템거래로 최고의 이익을 남기는 사이트에 협박메세지가 왔었습니다.

메세지인 즉슨, 돈을 요구하며 1시간안으로 입금이 안될경우 해킹을 해버리겠다는

협박메세지였는데 처음엔 장난인줄알고 무덤덤하게 있다가 1차 해킹이 있었습니다

막상 아이템베이 같은경우 해킹이라는게 아주 어려운데 만약 해킹이 시작되면

초비상입니다. 회원들의 포인트를 디죽박죽으로 만들면서 자신들의 대포아이디에

무차별적으로 포인트를 축적한다면 그리고 자동으로 인출을 눌러버리면 .....

즉 총 포인트가100원이였던 회원이 0을 3개를 붙여버리면 10만원이 되어버립니다.

그런식으로 회원들의 포인트를 랜덤으로 조작하기 시작하면 결국 그 피해보상은

베이쪽에서 책임을 져야하고 수습하는동안 베이는 매우큰 손실을 볼수있습니다.

사이트에 해커들이 방화벽을 뚫고 해킹이 시작되버렸을경우 가장 좋은 방법이 서버를

다운시켜버리는 겁니다 그리고 서버의 오프라인에서 작업을 하여 어떤루트로 어떤식

의 해킹이 있었는지 조사를 하게됩니다. 1차 해킹이 있은후 베이측에서는 초비상사태가 일어 났습니다. 국내 작업장 및 중국 작업장의 아이디에 있는 포인트가 보통3-5천만원 정도 쌓여 있고 주로 1-2달에 한번씩 뽑는 걸로 알고 있는데 그 몇천만원이 몇분사이에 몇천원 혹은 0원이 되어버린다면.....그 DB를 다시 복구하는데는 시간이 엄청 걸립니다. 처음에 1차서버다운했을때는 간단한 핑계거리를 대면서 어느정도 복구가 됐을때 서버를 오픈했지만 2차해킹때는 포인트가 아닌 서버자체를 해킹하여(어떤종의 바이러스인지는 본인도 알지 못합니다) 서버다운을 강제적으로 시켜버렸고

지금까지 총 5-6차까지 강제 서버다운을 시켜버렸습니다. 본인이 알기로 베이측에

중국해커들이 요구한 금액은 몇억원대에 이르며 1차 협박에 답이 없자 무차별적으로

공격중이고 이에 아이템베이측에서는 아주 곤욕을 치루고 있습니다.

이정보를 북미사이트 관계자들이 알고 베이측의 방화벽 및 서버구축에 대해 비아냥??

거리다 시피 '우리 ???사이트는 해킹방지와 차단에 있어 최계최고의 기술력이다.'

한국의 기술이 후진국수준이라며 비웃었습니다. 그런데 정확히 10월5일 오전 중국해커들의 무차별해킹 공격이 베이뿐만아니라 기술력을 운운했던 북미사이트들에게도

진행이 되어 요구금액을 주면 해킹을 안하겠다는 협박에 '할수있으면 해바라'라는

식의 북미사이트의 대응에 본인도 설마 저사이트가 당할까라는 생각을 했는데

오늘 오전 긴급 서버다운이 됐더군요 결국 해킹을 당했다고 보는게 맞는데

본인이 관계자와 통화한 결과 작은 문제가 있어서 서버다운을 했다는데 원래 작은문제나 그런건 사과문을 공지띄우고 몇월 몇일 몇시에 다운할건지를 예고를 하고

다운을 해야하건만 몇분사이에 사이트가 다운되버렸고 아직도 사이트가 오픈을 못하고 있습니다. 이야기가 길게 늘어 졌는데....

베이가 지금 사이트가 접속이 되었다가 안되었다가 혹은 계속 페이지 자체를 읽을

수가 없다는 문구가 뜨는거는 베이가 서버에 신경을 안쓰는개 아니라 (솔직히 1일 기준 서버다운이되면 베이 같은경우 손실액이 상당하기에 신경을 안쓸수가업죠) 신경을

온통 서버와 사이트에 쏟고 있지만 복구가 많이 힘든 상황이라는 것만 알고 있습니다


-답변5-

폭주가 아니라 해킹인것같습니다 ^^ , 자 .. 만약에 폭주라면 평일이 아니라 휴일에 가장많이 일어나는게 정답인겁니다 .. 근데 왜 청소년들이 학원간 지금 .. 폭주가 일어났겠습니까 ^^ ? 말이안돼는거죠 ㅎㅎ 지금 북미1.2위 사이트도 이처럼 해킹을 당했다고 하죠 ^^ ? 이건 단순한 폭주가 아니라 해킹인것같습니다 . ㅎ 그리고 위에님아 깝치지마세요 ㅎㅎ 중국해커가 얼마나 무서운데 뭐 개나소나 ?ㅋㅋㅋㅋ 님이 중국가보면암 ㅋㅋㅋㅋㅋ 중국해커가 저번에 뭐였더라 ㅋㅋㅋ 2001년인데 1901년으로 하게하는거 ㅋㅋ 어쨋든 그 바이러스 미국에 엄청큰회사에 퍼뜨리고 갓는데 아이템매니아 ? 식은죽먹기입니다 ^^ 알지도못하면 헛솔 작작 짖거리세요


-답변6-

님들이 보기에 그럴수있는데 해커들 무시하지마세요 ㅎㅎ

얼마전 던전앤파이터 사이트 중국인한테 해킹당해서

경매장에있던 아이템 아바타 다 털린거 던파하는분들이면 다아는데

게임 자체를 해킹안하고 게임 사이트만 해킹해서

템다 뽑아내고 텼습니다 잡지도 못했어요

본사 찾아간사람도 많습니다

님들이 세계 억만장자들이랑 비교하면 우물안에 개구리에요 ㅎㅎ


- 답변 7 -

말씀드리겠습니다.

아이탬메니아 베이 모두 법적으로 걸려서 수사중인 사이트들입니다.

벌써 9월초부터 시작해서 수사중인데 당연히 알려지지 않았기에 모르는것뿐입니다.

추석때문에 폭주라고요? 말도안됩니다. 절대아닙니다. 대략이사실이 안믿겨지시면

사이버 경찰수사대다 민원실에 전화해보십시오. 그래서 아이탬메니아 보상때문에 전화왔다고하면

분명히 말해줄것입니다 법적으로 걸려서 수사중이라고..

그것때문에 벌써 몇몇아는사람은 메니아에서 사기치고 돌아다니고 해서 요즘 피해도 늘은것입니다.

이유는 정확히 보르겠지만 사이버경찰청에 전화해보시면 금방알듯싶습니다.


-답변8-

ㅎㅎ.!!

현제 막 아이탬매니아 불법거래 ..  중단 됬다 ..

중국놈들한테 해킹을 당하였다 ..   

뭐 그런 소문들이 떠돌고 다니는데요 .. 

다 헛소문이고요 ..

1544-8278   ←로 전화 를 해 보았는데  ..   긴급 서버 전검중이라네요 ..

그래서 상담원이랑 대화를 하여보니 오늘 중에는 된다고 하네요 !!

너무 걱정하지마시고요 ..

즐거운 하르 되세요 ^^

- 답변 9 -         [설득있는거]

그렇습니다. 지금 아이템매니아,플포,,베이 등..


많은 아템거래 사이트들이 안되는것은 사실입니다. 단순한 서버폭주라면


매니아,플포,베이 3대 거래사이트가 이렇게 다운될리는 없습니다


있다그래도 아주 희박하겠군요.


인터넷 돌아다니는 루머중에 중국해커들,단체파업 등..


많은 글이 돌아다니고있습니다.


이것들이 루머인지 아니면 진짜인지 아직은 확실히 사실을 밝혀내기 어렵습니다.


매니아 고객센터에 전화해보면 단순한 서버다운이라고 한다고 하더군요


하지만 누가압니까 만약 진자 해킹을 당했다거나 돈을먹고 째려는거면


연결음만 그렇게해놓고 튈수도 있다는겁니다 아님 진짜 해킹이되었다든가요


하지만 이베이나 옥션 템매니아 보다 더 거래량이 많은 거래사이트들이 잘 돌아가는걸보면


해킹설은 아닌것같군요 또 어떤놈들은 3대 템거래사이트들이 수사망에걸려서 수사를 받고있다고하더군요?


그러면서 정말 민원실에 전화해서 확인을 해보라는겁니다. 전 직접 전화는 해보지않았습니다.


하지만 3대 거래사이트에서 사기를치는 유저가 발생할시 본인의 부주의가 아니라 그 인간이 의도적으로


먹고 짼거라면 충분히 형사처벌이 가능하다고 했구요 실제로 그런 사례도 있었구요


그럼 당연히 수사를 받는다는 개소리는 가능성이 희박해지겠군요


가장 유력한설이 네트워크가 장애가 됬다는건데요 어느분 말에따르면 3대 거래사이트가


하나포스 선을 쓴다느니.. 메가패스 선을 쓴다느니.. 해서 지금 그 선에 장애가 있어서 이거래사이트들이


다 다운된거라고합니다. 실제로 그럴수도있겠군요..


하지만 제일중요한건 지금 우리가 여기 모여서 이 개소리를 짓껄이고 있어봤자 아무것도 해결되지않는다는거죠


그럴수록 개같은 루머들은 더 떠돌아다닐거고요


저도 사실 매니아에 마일리지가 있습니다 그걸 8시쯤 출금하려고했더니 서버가 안들어가지더군요


그냥 하루빨리 사이트들이 복구되기를 기다리는수밖에없네요..


만약 정말로 해킹을당했다거나 사이트가 ㅄ이된거라면 가만히 있지않을것입니다.. 아마..


그러기에 거래사이트들도 지금 최선을 다하고 있을거구요..

-답변10- 개념없는답변

아 빨리 풀렸으면 좋겠네요

저도 매냐에 12만원묶여있는데 ㅠ;;;

지금까지판거는 어떻하지???

--- 다시 수정합니다 제가 오전 11시에 들어본결과 아이템매니아 들어가졌습니다 --- 스샷참조

posted by 권오성의 Biomedical Engineering 2007. 10. 10. 11:25
사용자 삽입 이미지

입사 후 웹관련 분야에서 일하고 싶었는데 본의 아니게 임베디드 장비 개발회사로 취업하여 장비와 맞물린 개발업무를 하고 있습니다.
'C#은 웹 전문언어야~'라고 생각하고 있었는데 얼마전 VOIP, IPTV 개발회사를 방문해보니 의외로 C#으로 개발하고 있는 회사가 많다는걸 알게 되었습니다. 특히 젊은 사장의 경우 말입니다.
다시 한번 C#의 무궁무진한 개발분야를 염두해 두시라고 올려봅니다.
posted by 권오성의 Biomedical Engineering 2007. 9. 20. 10:26
FlexGrid Insert/Remove Example
 
SUMMARY
 
이번에는 FlexGrid에서 특정 위치에 칼럼을 삽입하거나 삭제하는 방법을 배워볼 것이다. 엑셀에서 칼럼을 추가하거나 삭제할 때의 방식과 비슷하도록 하기 위해 고정행 위에서 마우스 오른쪽 버튼을 클릭할 때 팝업 메뉴를 표시한 후 처리하도록 구성했다(아래 그림 참조). 추가가 가능한 칼럼은 과목 칼럼으로 한정한다.
사용자 삽입 이미지


 




BASIS

이 예제를 완성하려면 비주얼 베이직에서 팝업 메뉴를 표시하는 방법과 FlexGrid에서 칼럼을 추가하거나 삭제하는 간단한 방법에 대해 알아야 한다. 당연하게도(^^).... 참고문헌 [1], [2]에서 각 방법에 대한 친절한 설명을 찾을 수 있었다. 아래에 퍼왔으니 참고하시길...
 
 
Pop-Up Menus (참고문헌 [2]에서 가져왔음)

Visual Basic also supports pop-up menus, those context-sensitive menus that most commercial applications show when you right-click on an user interface object. In Visual Basic, you can display a pop-up menu by calling the form's PopupMenu method, typically from within the MouseDown event procedure of the object:
 
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, _
        X As Single, Y As Single)
    If Button And vbRightButton Then
        ' User right-clicked the list box.
        PopupMenu mnuListPopup
    End If
End Sub

The argument you pass to the PopupMenu method is the name of a menu that you have defined using the Menu Editor. This might be either a submenu that you can reach using the regular menu structure or a submenu that's intended to work only as a pop-up menu. In the latter case, you should create it as a top-level menu in the Menu Editor and then set its Visible attribute to False. If your program includes many pop-up menus, you might find it convenient to add one invisible top-level entry and then add all the pop-up menus below it. (In this case, you don't need to make each individual item invisible.) The complete syntax of the PopupMenu method is quite complex:
 
PopupMenu Menu, [Flags], [X], [Y], [DefaultMenu]
 

By default, pop-up menus appear left aligned on the mouse cursor, and even if you use a right-click to invoke the menu you can select a command only with the left button. You can change these defaults using the Flags argument. The following constants control the alignment: 0-vbPopupMenuLeftAlign (default), 4-vbPopupMenuCenterAlign, and 8-vbPopupMenuRightAlign. The following constants determine which buttons are active during menu operations: 0-vbPopupMenuLeftButton (default) and 2-vbPopupMenuRightButton. For example, I always use the latter because I find it natural to select a command with the right button since it's already pressed when the menu appears:
 

PopupMenu mnuListPopup, vbPopupMenuRightButton
 

The x and y arguments, if specified, make the menu appear in a particular position on the form, rather than at mouse coordinates. The last optional argument is the name of the menu that's the default item for the pop-up menu. This item will be displayed in boldface. This argument has only a visual effect; If you want to offer a default menu item, you must write code in the MouseDown event procedure to trap double-clicks with the right button.
 
 
 
ColPosition Property
Moves a given column to a new position.
 
Syntax
[form!]vsFlexGrid.ColPosition(Col As Long)[ = NewPosition As Long ]
 
Remarks
The Col and NewPosition parameters must be valid column indices (in the range 0 to Cols - 1), or an error will be generated.
When a column or row is moved with ColPosition or RowPosition, all formatting information moves
with it, including width, height, alignment, colors, fonts, etc. To move text only, use the Clip property instead.
The ColPosition property gives you programmatic control over the column order. You may also use the ExplorerBar property to allow users to move columns with the mouse.
 
 
IMPLEMENTATION
 
팝업 메뉴를 표시하는 이벤트로 MouseUp을 선택했다. 일단 마우스 오른쪽 버튼을 눌렀는지 확인한 후 다음으로 과목명 칼럼을 클릭했는지 확인한다. 두가지 조건을 모두 만족하면 엑셀의 동작방식과 비슷한 효과를 주기 위해 해당 칼럼을 모두 선택 상태로 만들고 팝업 메뉴를 표시한다.
 
Private Sub FG_MouseUp(Button As Integer, Shift As Integer, _
                       X As Single, Y As Single)
    If Button And vbRightButton Then
        '
과목명 셀을 클릭할 때만 팝업 메뉴를 표시한다.
        If (FG.MouseRow = 1) And (FG.MouseCol > 1) And (FG.MouseCol < FG.Cols - 2) Then
            '
선택한 느낌이 들도록....
            FG.Col = FG.MouseCol
            FG.Row = FG.MouseRow + 1
            FG.RowSel = FG.Rows - 1
            FG.ColSel = FG.MouseCol

            '
팝업 메뉴 표시함.
            PopupMenu mnuGridPopup
        End If
    End If
End Sub
 
 
"Insert Column" 메뉴를 선택하면 과목명을 입력받은 후 칼럼을 추가하고 양식을 유지시키기 위한 몇가지 작업을 추가로 처리한다. 핵심 코드는 굵게 표시한 2줄이다. 칼럼수를 늘린 후에 ColPosition 속성을 이용해서 추가된 칼럼(.Cols-1)을 사용자가 선택한 칼럼(.Col) 앞으로 이동시키는 것이다. 아주 간편하게 처리된다.
 
Private Sub mnuInsertColumn_Click()
    With FG
        ' insert column
        Dim str As String
        str = InputBox("
과목명을 입력하세요")
        If str <> "" Then
            .Cols = .Cols + 1          ' add column
            .ColPosition(.Cols - 1) = .Col    ' move into place

            .Cell(flexcpText, 1, .Col) = str
            .Cell(flexcpAlignment, 1, .Col) = flexAlignCenterCenter
            .Cell(flexcpText, 0, .Col) = "
과목"
        End If
    End With
End Sub
 
사용자 삽입 이미지
 
 
 
"Remove Column" 메뉴를 선택하면 사용자가 선택한 칼럼(.Col)을 마지막 칼럼(.Cols-1)으로 이동시킨 후에 칼럼의 수를 1만큼 감소시켜 삭제하는 효과를 준다. 어려울게 없다.
 
Private Sub mnuRemoveColumn_Click()
    With FG
        ' delete column
        .ColPosition(.Col) = .Cols - 1 ' move to right
        .Cols = .Cols - 1              ' delete column

        '
칼럼이 삭제됐으므로 계산을 다시 수행한다.
        Dim nTotal As Integer
        Dim dAverage As Single

        For i = 2 To .Rows - 1
            nTotal = .Aggregate(flexSTSum, i, 2, i, .Cols - 3)
            dAverage = .Aggregate(flexSTAverage, i, 2, i, .Cols - 3)

            .Cell(flexcpText, i, .Cols - 2) = CStr(nTotal)
            .Cell(flexcpText, i, .Cols - 1) = Format(dAverage, "#,##.0")
        Next
    End With
End Sub
 
 
지금까지 FlexGrid가 제공하는 기능 중 내가 주로 쓸 몇가지 기능 위주로 알아봤다. 매뉴얼을 살펴보니 이것 외에도 다양한 기능을 제공하는데, 그럼에도 불구하고 300달러의 가격 밖에 안되니 가격대 성능비가 뛰어난 제품이라 하겠다. 아주 마음에 든다.
 
 
REFERENCE
 
[1] VSFlexGrid 8.0 Manual, ComponentOne, 2005.
     - f:\ftp_root\program\develop\FlexGrid\VSFlexGrid8Manual2005.pdf
     - pp.269, FAQ: How can I add or delete a column at a given position?
[2] Francesco Balena, "Programming Microsoft Visual Basic 6.0", Microsoft Press, 1999.
     - Chapter 3. Intrinsic Controls, Menus.
 
Project Folder : D:\KDSONG\Study\Visual Basic\Controls\VSFlexGrid\FlexGridInsertRemove\
 
KEYWORDS : FlexGrid grid selection insert remove column copy paste 리드 복사 붙여넣기 선택 영역
열 칼럼 삽입 삭제
posted by 권오성의 Biomedical Engineering 2007. 8. 22. 13:46
아래와 같은 메시지가 나올 경우 소스에 다음과 같이 델이게이트 처리를 해주시면 해결됩니다.

사용자 삽입 이미지



//Delegate로 처리하는 부분
this.Invoke(new MethodInvoker(delegate()
{
*** 어쩌구 저쩌구 데이터를 뿌려주는 메소드 안의 내용.
}));

이렇게 하시면 위의 에러는 해결됩니다.
posted by 써니루루 2007. 7. 20. 17:21

.net Window form에서 컨트롤을 드래그 드롭하는 예제를 보면서 DragEnter와 DragDrop이벤트를 발췌해서 소개한다.


  /// <summary>
  /// The DragEnter event of the target control fires when the mouse enters
  /// a target control during a drag operation, and is used to determine if a drop
  /// will be allowed over this control.  This generally involves checking the type
  /// of data being dragged, the type of effects allowed (copy, move, etc.),
  /// and potentially the type and/or the specific instance of the source control that
  /// initiated the drag operation.
  ///
  /// This event will fire only if the AllowDrop property of the target control has
  /// been set to true.
  /// </summary>
  /// <param name="sender">The source of the event.</param>
  /// <param name="e">A DragEventArgs that contains the event data.</param>
  private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
  {
   // Display some information about the DragDrop information in the
   // richTextBox1 control to show some of the information available.
   richTextBox1.Text = "Source Control: " + sourceControl.Name +
    "\r\nSource Control Type: " + sourceControl.GetType().Name +
    "\r\nAllowed Effect: " + e.AllowedEffect +
    "\r\nMouse Button: " + mouseButton.ToString() + "\r\n" +
    "\r\nAvailable Formats:\r\n";

   // Data may be available in more than one format, so loop through
   // all available formats and display them in richTextBox1.
   foreach (string availableFormat in e.Data.GetFormats(true))
   {
    richTextBox1.Text += "\t" + availableFormat + "\r\n";
   }

   // This control will use any dropped data to add items to the listbox.
   // Therefore, only data in a text format will be allowed.  Setting the
   // autoConvert parameter to true specifies that any data that can be
   // converted to a text format is also acceptable.
   if (e.Data.GetDataPresent(DataFormats.Text, true))
   {
    // Some controls in this sample allow both Copy and Move effects.
    // If a Move effect is allowed, this implementation assumes a Move
    // effect unless the CTRL key was pressed, in which case a Copy
    // effect is assumed.  This follows standard DragDrop conventions.
    if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move && (e.KeyState & ctrlKey) != ctrlKey)
    {
     // Show the standard Move icon.
     e.Effect = DragDropEffects.Move;
    }
    else
    {
     // Show the standard Copy icon.
     e.Effect = DragDropEffects.Copy;
    }
   }
  }

  /// <summary>
  /// The DragDrop event of the target control fires when a drop actually occurs over
  /// the target control.  This is where the data being dragged is actually processed.
  ///
  /// This event will fire only if the AllowDrop property of the target control has
  /// been set to true.
  /// </summary>
  /// <param name="sender">The source of the event.</param>
  /// <param name="e">A DragEventArgs that contains the event data.</param>
  private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
  {

   // Store the data as a string so that it can be accessed from the
   // mnuCopy and mnuMove click events.
   sourceData = e.Data.GetData(DataFormats.Text, true).ToString();

   // If the right mouse button was used, provide a context menu to allow
   // the user to select a DragDrop effect.  The mouseButton is recorded in the
   // MouseDown event of the source control.
   if (mouseButton == MouseButtons.Right)
   {
    // Show a context menu, asking which operation to perform.
    // The ProcessData() call is then made in the click event
    // of the mnuCopy and mnuMove menu items.  Show only those
    // menu items that correspond to an allowed effect.
    mnuCopy.Visible = ((e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy);
    mnuMove.Visible = ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move);
    contextMenu1.Show(listBox1, new Point(20,20));
   }
   else
   {
    // Set the deleteSource member field based on the Effect.
    // The Effect is preset in the DragEnter event handler.
    deleteSource = (e.Effect == DragDropEffects.Move);

    // The processing of the data is done in a separate call, since
    // this is also called from the click event of the contextMenu1 items.
    ProcessData();

   }
  }

posted by 써니루루 2007. 7. 19. 02:38
간단히 .NET 2.0 C# Windows form 으로 개발한 적금 계산하는 프로그램입니다.

적금이 얼마나 될지 궁금한 일이 많은데 가끔씩 한번 찾아보게 되서 동료가 만든 프로그램을 올려봅니다.

짧은 시간에 짠거라 많은 기능은 기대하지 말아주세용;