.net core 3.0 정식 버 전 으로 Winform 프로그램 을 만 드 는 방법(그림)

4814 단어 .netcore창설Winform
얼마 전 까지 만 해도.net core 3.0 정식 버 전이 나 오 기 를 기 다 렸 는데 이 버 전이 나 오 면 Winform 프로그램 이 다시 신입생 을 맞이 할 것 이 라 고 생각 했 지만 9.23 일 나 온 즉시 업데이트 VS 를 다운로드 하여 새로운.net core Winform 프로젝트 를 만 들 었 는데 Winform 창 디자이너 가 없 었 다.한편,마이크로소프트 는 현재 플러그 인 방식 을 통 해 우 리 는 Winform 디자이너 를 단독으로 다운로드 할 수 있 습 니 다.이 디자이너 는 미리 보기 버 전이 고 많은 기능 이 실현 되 지 않 았 습 니 다.간단 한 초기 형태 라 고 할 수 있 습 니 다.본 블 로그 사례 는.net core 3.0 을 바탕 으로 일반적인 WInform 프로그램 을 만 들 고.net core 3.0 을 바탕 으로 만 든 프로그램의 대략적인 모습 을 보 여 줍 니 다.
1.개발 환경의 준비
.net core 3.0 을 기반 으로 한 WInform 개발 을 하려 면 먼저 Visual Studio 를 16.3 으로 업데이트 해 야 합 니 다.이 버 전 은.net core 3.0 을 통합 한 것 이기 때문에.net core Winform 프로그램 을 개발 할 수 있 는 기반 이기 도 합 니 다.
그 다음은 다운로드winforms-designer플러그 인 입 니 다.이것 은 Winform 창 을 지원 하 는 디자이너 입 니 다.컨트롤 을 드래그 하 는 방식 으로 인터페이스의 디자인 개발 을 할 수 있 습 니 다.
.NET Core Windows Forms 시각 화 디자이너 는 앞으로 미래의 Visual Studio 2019 업데이트 의 일부분 이 될 것 입 니 다.그러나 현재 시각 화 디자이너 를 사용 하려 면 미리 발 표 된 Visual Studio 확장 이 필요 합 니 다.
이 두 단 계 를 완성 하면 다른 개발 은 우리 가 일반적으로 VS 프로젝트 를 만 드 는 것 과 같다.

프로젝트 를 만 든 후에 우 리 는 해당 하 는 Winform 창 을 열 수 있 고 도구 상자 에서 Winform 인터페이스 컨트롤 을 볼 수 있 습 니 다.좋 은 것 은 컨트롤 의 차이 가 많 지 않 습 니 다.좋 은 것 은 일반적인 Winform 컨트롤 이 많이 줄 어 든 것 입 니 다.이것 도 현재 WInform 디자이너 가 미리 보기 판 을 개발 하고 있 는 이유 입 니 다.

2.WInform 프로그램 만 들 기
간단 한 테스트 를 위 한 WInform 프로그램 을 만 들 기 위해 서 우 리 는 안에 WInform 의 인터페이스 컨트롤 을 추가 할 수 있 습 니 다.그러나 사용 과정 에서 많은 인터페이스 에 필요 한 요 소 는 인터페이스 컨트롤 의 지원 을 제공 하지 않 았 습 니 다.도구 모음,속성 이 완선 되 지 않 았 습 니 다.예 를 들 어 ImageList 대상 과 Image 대상 의 속성 지원 등 은 코드 를 통 해 만 사용 할 수 있 습 니 다.
간단 한 WInform 인 터 페 이 스 를 만 들 고 일반적인 컨트롤 을 끌 었 습 니 다.그러나 일부 컨트롤 은 그림 을 사용 해 야 합 니 다.예 를 들 어 ListView,PictureBox 등 은 코드 설정 을 통 해(속성 을 통 해 그림 을 지정 할 수 없습니다)

마지막 화면 전시 효 과 는 다음 과 같다.

창의 원본 코드 는 다음 과 같다.

public partial class Form1 : Form
 {
  public Form1()
  {
   InitializeComponent();
  }

  private void button1_Click(object sender, EventArgs e)
  {
   MessageBox.Show("  ,    .net core Winform  ", "    ", 
    MessageBoxButtons.OK, MessageBoxIcon.Information | MessageBoxIcon.Asterisk);
  }

   
  private ImageList imageList = new ImageList();
  private void Form1_Load(object sender, EventArgs e)
  {
   var image = Image.FromFile(Path.Combine(Application.StartupPath, "SplashScreen.png"));
   if(image != null)
   {
    this.pictureBox1.Image = image;
   }

   imageList.Images.Clear();
   var iconPath = Path.Combine(Application.StartupPath, "icons");
   var fileNames = Directory.GetFiles(iconPath, "*.ico");
   foreach(string file in fileNames)
   {
    imageList.Images.Add(file, Image.FromFile(file));
   }
   this.treeView1.ImageList = imageList;
   foreach(TreeNode node in this.treeView1.Nodes)
   {
    SetNodeImage(node);
   }

   this.button1.Image = imageList.Images[2];
  }

  private void SetNodeImage(TreeNode node)
  {
   foreach (TreeNode subNode in node.Nodes)
   {
    subNode.ImageIndex = subNode.Level;
    subNode.SelectedImageIndex = subNode.Level;
    SetNodeImage(subNode);
   }
  }
이 를 통 해 알 수 있 듯 이.net core 의 WInform 프로그램 은 창 요소 나 관련 대상 이 일치 하지 않 고 이름 이 일치 하지 않 는 상황 이 발생 하지 않 았 습 니 다.사용 하기에 매우 편리 하고 일치 합 니 다.그러나 많은 인터페이스 에 대응 하 는 기능 입 니 다.현 재 는 배경 코드 의 사각형 으로 보충 해 야 비교적 완전한 효 과 를 실현 할 수 있 습 니 다..net Framework 프레임 워 크 에서 이미 완 선 된 매우 좋 은 Winform 개발 과 차이 가 조금도 없 는 것 같 습 니 다.보아하니.net core winform 개발 의 길 은 아직 멀 었 습 니 다.도구 차원 에서 더 많은 지원 이 필요 합 니 다.
인터페이스 방안 에서 우 리 는 네 임 스페이스 도 예전 보다 많이 줄 어 든 것 을 보 았 다.주로.net core 에서 제공 하 는 WInform 패키지 입 니 다.

프로그램 디 렉 터 리 에 있 는 파일 을 다시 보 겠 습 니 다.아래 와 같 습 니 다.

현재 우 리 는 제3자 의.net core 차원 의 라 이브 러 리 를 고려 하지 않 았 기 때문에 여 기 는 제3자 의 DLL 을 사용 하지 않 았 습 니 다.나중에 통합 하면 제3자 와 관련 된 인용 도 매우 큰 문제 입 니 다.만약 에 대부분 자주 사용 하 는 라 이브 러 리 가.net standard 를 바탕 으로 하 는 라 이브 러 리 지원 이 있다 면 좋 습 니 다.그렇지 않 으 면 딜레마 에 직면 할 수 있 습 니 다.그러나.net core 의 Winform 개발 은 기대 할 만하 다 고 생각 합 니 다.왜냐하면 전체적인.net core 개발 노선 을 도입 하 는 것 은 기업 이나 개인 에 게 매우 좋 은 개발 장면 이기 때 문 입 니 다.
.net core 3.0 정식 버 전 을 사용 하여 Winform 프로그램 을 만 드 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.

좋은 웹페이지 즐겨찾기