본문 바로가기
Education/Bit 18th

[Windows Mobile] 간단한 로딩화면 구현

by ★용호★ 2009. 12. 6.

개발환경
Visual Studio 2008, C#



이번시간에는 간단하게 로딩 화면을 구현해 보겠습니다.

어플리케이션이 구동시 복잡한 연산을 해야하는 경우 로딩중임을 표시할수 있습니다.
혹은 로딩 표시 대신 
어플레케이션에 대한 소개나 저작권등을 표시하면
어플리케이션의 전체적인 완성도가 높아 질것입니다.

우선 포토샵으로 간단하게 로딩시 보여줄 이미지를 만듭니다.

아래 이미지를 써도 무방 합니다.






Visual Studio 로 돌아와 작업을 시작 하겠습니다.

[추가] -> [기존 항목] 으로 만들었던 이미지 파일을 추가해 주고 속성값에서
[출력디렉토리복사] 를 항상 복사로 지정해 줍니다.







[추가] -> [새항목] ->[Window Forms] 로 새 폼을 추가합니다.

프로그램 시작시 이미지 파일을 담고 있는 Loading 폼을 먼저 보인 후
작업이 끝나면 Form1 을 보이는 식으로 제작 할 것 입니다.





먼저 Loading 폼을 작업 하겠습니다.

PictureBox를 폼으로 끌어 놓습니다.



이미지 파일이 화면 가득차게 나오게 하기 위해서
Dock 속성과 SizeMode를 아래와 같이 지정 합니다.

소스파일을 편집 합니다.

using 부분에 아래를 추가해 주고

 using System.IO;



로드 이벤트를 아래와 같이 작성 합니다.
전체화면으로 이미지 파일을 표시 하도록 합니다.

 private void Loading_Load(object sender, EventArgs e)
        {
         
            this.ControlBox = false;
            string path = GetApplication();

            Image img = new Bitmap(Path.Combine(path,"Loading.jpg"));

            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox1.Image = img;
        }

        private string GetApplication()
        {
            return System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly()
                .GetModules()[0].FullyQualifiedName);
        }







이번엔 Form1 을 작성 하겠습니다.

간단하게 텍스트 박스 1개를 배치하고
로딩이 끝나면 메세지를 표시하겠습니다.




소스코드를 아래와 같이 작성합니다.
초기 작업이 일어 난다는 가정을 위해 System.Threading.Thread.Sleep 을 이용했습니다.

  private Form loadingform;


        public Form1(Form splas)
        {
            loadingform = splash;

            InitializeComponent();

            System.Threading.Thread.Sleep(5000);
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = "어플리케이션이 시작 되었습니다.";
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            if (loadingform != null)
            {
                loadingform.Close();
                loadingform.Dispose();
                loadingform  = null;
            }
        }







마지막으로 Program.cs 파일을 편집 합니다.

시작시 로딩화면을 먼저 보여주고 메인 폼을 보여줍니다.

       [MTAThread]
        static void Main()
        {

            Loading ld = new Loading();
            ld.Show();
            ld.Refresh();

            Form1 fm = new Form1(ld);

            Application.Run(fm);
        }





테스트해 보겠습니다.

로딩 화면이 보여진 후 메인 폼으로 진입하는 것을 확인 할 수 있습니다.




 

댓글