총 삽질들 514

#100_닷넷(.NET)_ WinForm - 모달리스(Modeless) Dialog 활용

안녕하세요 삽잡이입니다. 지난 시간에는 모달리스에 대해서 알아봤습니다.이번에는 모달리스를 통해서 ListBox를 한번 집어넣어볼까요? 세세하게 다루지 않고, 가볍게 읽으며 넘어가는 식으로 글을 쓰고자합니다.기존에 Window Native 영역인 API에 대한 이해가 없으시다면 이해가 잘 안가실 수 있으니, API 부분부터 다시 보시는 것 또한 추천드립니다! 데이터는 Modeless Form 내부에 저장하지 않을 것입니다.즉, Modeless를 호출한 부모에 저장을 하겠지요. 그런데, ListBox를 만들고 데이터에 접근하여 ListBox에 올리려면 어떻게 해야할까요? 바로, Modeless를 호출한 Form으로부터 저장되어있는 데이터를 접근하기 위해Getter 즉, 속성을 통해 접근하면 됩니다. List..

#099_닷넷(.NET)_ WinForm - 모달리스(Modeless) Dialog 생성 및 제거

안녕하세요 삽잡이입니다. 이번시간에는 모달리스 다이얼로그에 대해서 알아보려고합니다. 세세하게 다루지 않고, 가볍게 읽으며 넘어가는 식으로 글을 쓰고자합니다.기존에 Window Native 영역인 API에 대한 이해가 없으시다면 이해가 잘 안가실 수 있으니, API 부분부터 다시 보시는 것 또한 추천드립니다! 기존에 모달 다이얼로그의 경우,해당 다이얼로그가 실행된 상태에서 Focus가 집중되어있기 때문에,다른곳으로 이동하지 못합니다.또한, 모든 메시지는 모달이 띄워져있는 상태에서 처리하게 됩니다. 모달리스 다이얼로그의 경우 Focus가 해당 다이얼로그에 집중되어있지 않습니다. WinForm에서는 모달리스 다이얼로그 역시,Form을 하나 만들고 [속성]을 변경해주면 됩니다. FormBorderStyle 속성..

#098_닷넷(.NET)_ WinForm - 그리기 (Graphics)

안녕하세요 삽잡이입니다. 이번시간에는 WinForm에 있는 기능 중에서그리기에 대해서 알아보고자 합니다. 세세하게 다루지 않고, 가볍게 읽으며 넘어가는 식으로 글을 쓰고자합니다.기존에 Window Native 영역인 API에 대한 이해가 없으시다면 이해가 잘 안가실 수 있으니, API 부분부터 다시 보시는 것 또한 추천드립니다! Paint 이벤트에 대한 핸들러를 만들게 되면,해당 메서드에는 인수로 PaintEventArgs 라는 형식의 인자가 넘겨옵니다. Graphics 객체가 하나 들어오는 것입니다.이를 통해서 간단한 그리기를 할 수 있지요. Graphics 객체는 그리는데 필요한 객체입니다.이전에 API를 가지고 놀 때 DC 객체를 얻었었죠.이처럼 WinForm에서는 Graphics 객체를 얻어야합니..

#098_닷넷(.NET)_ WinForm - 컨트롤 (Control)

안녕하세요 삽잡이입니다. 이번시간에는 WinForm에 대한 Control을 알아보려고합니다. 참고로, 지금부터는 'designer.cs' 에 있는 코드는 '디자이너 코드',그리고 우리 프로그래머가 다루는 코드는 그냥 '코드'라고 칭하겠습니다. control은 사용자와 대화하고, 사용자에게 보여주기 위한 모든 속성과 메서드를 말합니다. 우선, 디자니어쪽 코드를 보시면 아시겠지만,이런 범접할 수 없는 아우라(?)를 풍기는 코드가 있지요. 이 코드는 신경 안써도 됩니다.이 아래부터 우리 개발자들이 신경쓸 코드입니다. 'Windows Form 디자이너에서 생성한 코드'를 열어보시면메인 Form을 비롯한 추가된 컨트롤들에 대한 코드들이 정의되어있습니다. 생성코드와 컨트롤에 대한 참조자를 확인할 수 있는 것이지요...

#097_닷넷(.NET)_ WinForm - WinForm 기초 및 Event

안녕하세요 삽잡이입니다. 이번시간에는지난시간에 배운 기본적인 WinForm의 개념을 더해서 이벤트까지 한번 알아보려고합니다. 참고로, 지금부터는 'designer.cs' 에 있는 코드는 '디자이너 코드',그리고 우리 프로그래머가 다루는 코드는 그냥 '코드'라고 칭하겠습니다. 기본적으로 Main Form에서 대부분의 활동을 하게 됩니다. 간단하게 Form의 [속성]들을 살펴보자면,크기를 줄이던지 늘릴 수 있고, 혹은 투명도, 위치등 설정이 가능합니다. 그런데, 기본적으로 코드로도 바꿀 수 있지요. 처음 Form이 실행될 때에는,초기 값을 사용하는 Look & Feel 코드로써 InitializeComponent() 메서드를 호출하게 됩니다. 느껴지는대로 보여주는 디자인 코드져 허허...이는 초기값을 설정해..

#096_닷넷(.NET)_ WinForm - WinForm Intro

안녕하세요 삽잡이입니다. 이번시간부터는 WinForm에 대해서 간략하게(?) 맛만 보며 알아가려고 합니다. 왜 맛만 보냐?? 요즘 대세는 WPF죠... 허허... ... 힘빠지십니까... 그래도 알아서 나쁠게 있습니까?달려봅시다!!!WinForm에 대한 썰은 나중에 [ETC]로 하나 풀어보도록 하지요. 아무튼... 달려봅시다!!! WinForm을 사용하기 위한 기본 클래스 라이브러인 System.Windows.Forms 는 BCL에 들어있습니다. Application.Run()는 정적 메서드입니다.해당 메서드 내부에는 실제 프로그램을 구동시켜주도록쓰레드를 실행시켜 WinForm에 모든 동작을 수행하는 코드가 들어가있습니다.여기에 Form 객체를 하나 넘기게 되지요. [STAThread] 는Single T..

#095_닷넷(.NET)_ ADO.NET - 비연결 계층 LINQ

안녕하세요 삽잡이입니다. 몇일 전부터 ADO.NET에 대해서 알아보고 있습니다.이번 시간에는 ADO.NET의 마지막으로써비 연결 계층에서 LINQ를 사용하는 기능에 대해서 알아보려고 합니다. LINQ 문법은 쿼리 문법으로써SQL과 마찬가지로 많은 데이터를 대상으로 때립니다. 이전에는 객체들인 objects 형식에 때렸던 것이었습니다.그런데 ADO.NET에서 보셨으면 아시겠지만,DataSet을 대상으로도 LINQ가 가능하다는 놀라운 사실을 알 수 있습니다. 지금까지 데이터를 조작하는 방법은 총 세가지였습니다.1. Tables, Rows, Colums 컬렉션을 사용.2. DataReader 객체를 사용.3. 강력한 타입의 데이터 클래스를 사용. 그리고 이번에 알아볼 LINQ까지 합치면 이제는 총 네가지이군요..

#094_닷넷(.NET)_ ADO.NET - 비연결 계층 자동화

안녕하세요 삽잡이입니다. 이번 시간에는 자동으로 사용하는 비연결 계층에 대해서 알아보겠습니다. 사실, 지난 시간까지 DataTable을 만들고... Adapter를 추가하고... DataColumn을 추가하고... 등등...DB 한번 쓰기 참 힘들었죠... 그런데, MS에서는 이 비연결 계층 방식으로 DB를 사용할 때에자동으로 '강력한 타입'의 DB 코드를 제공해줍니다. [서버 탐색기] > [데이터 연결]을 통해 사용하고자 하는 DB를 연결하고,데이터 집합이라는 파일을 만듭니다. 'xsd' 확장자의 데이터 집합 파일을 만들게 되면,이제 비연결 계층의 기능을 자동으로 제공해주게 됩니다. [서버 탐색기]로 부터 열어놓은 Table들을 드래그를 통해서 쉽게 만들 수 있게 되지요. 굉장히 편리하지 않습니까? T..

[삽잡이::C#] ADO.NET_View

ADO.NET 에서 View는실제 원본을 보여주고 싶은것이 아니라,보여주고 싶은 데이터들만 보여주고 싶을 때가상의 테이블을 하나 만들어 주는 기능을 제공해줍니다. 즉, 보여주고 싶은 필드만을 지정해주고,View를 통해 해당 필드만을 보여줄 수 있다 이것이지요. 해당 코드는 테이블의 참조를 받아와서 DefirtView 를 사용해서 바인딩하는 과정입니다.

#093_닷넷(.NET)_ ADO.NET - 비연결 계층 코드

안녕하세요 삽잡이입니다. 지난 시간에는 ADO.NET에서 제공하는 비연결 계층에 대해서 알아봤습니다.개념을 중점적으로 알아봤었지요. 이제부터는 실제 코드를 보며, 어떻게 비연결 계층을 다루는지에 대해서 알아보겠습니다. 데이터 컬럼을 만드는 방법은 이와 같습니다. Primary Key는 오직 읽기만 가능하고, 누구나 가지고 있으며, Uniqe해야합니다.따라서, 이와 같이 상태에 대한 설정을 해주고 Primary Key로 Column을 지정해줄 수 있습니다. 또한, Column들을 따로 따로 만들 필요 없이AddRange()를 통해 여러개의 Column들을 한꺼번에 만들 수 있습니다. 물론, DB에서 자동적으로 만들어주지만,공부를 위해 수동적으로 만드는 방법에 대해서 알아보는 것입니다. DataRow는 각각..