반응형

안녕하세요

 

이번 포스팅은 윈도우의 기중 중에 하나인 작업스케줄러의 기능을 소개 할려고 하는데요

 

작업스케줄러에 반복 작업을 등록하고자 할때 선택 할 수 있는 시간이

 

5분, 10분, 15분, 30분, 1시간 이렇게 콤보박스로 되어 있습니다

 

1분까지는 수동으로 작성하여 기입이 가능합니다

 

작업 반복 간격의 콤보박스칸에 수동으로 1 분이라고 타이핑 치시면 1분까지는 설정이 가능합니다

 

 

단 초단위 반복을 작성하고 할때 1 초라고 기입을 하면 에러 메세지가 나타납니다

 

 

제가 하고자 하는 반복 작업을 윈도우에서 어떠한 프로그램(프로세스)가 실행되어 있는지 확인하여

 

실행되어 있으면 통과, 실행되어 있지 않으면 재실행 시키는 Batch를 수행하고자 하는게

 

그 반복 간격이 10초여야 합니다

 

그래서 편법으로 윈도우의 작업스케줄러를 10초 반복하여 수행하는 방법을 알려드릴려고 합니다

 

 

1. 윈도우에서 작업 스케줄러를 실행합니다

    - 찾기에서 작업 스케줄러라고 검색하시면 됩니다

 

2. 작업 스케줄러에서 작업만들기

   - 작업 스케줄러 창에서 우측 작업 메뉴에서 작업 만들기...을 클릭 합니다

 

  - 새 작업 만들기 창이 뜨면 이름, 설명, 구성대상의 환경 옵션을 설정 합니다

    (크게 중요한 부분은 아닙니다)

 

2. 트리거 생성

   - 상단 트리 메뉴에서 트리거 항목을 클릭하여 새로 만들기를 통해 트리거를 생성합니다

   - 10초 단위 실행을 위하 아래와 같이 실정하셔야 합니다

     (AM 12:00:00, AM 12:00:10, AM 12:00:20, AM 12:00:30, AM 12:00:40, AM 12:00:50)

 

 

  - 이렇게 총 6개의 트리거를 생성합니다

 

3. 동작 설정하기

    - 상단 동작탭을 클릭한 후 아래 새로 만들기를 통한 동작 설정

 

   - 동작 상세 옵션 설정

      (저는 Bat파일을 만들어서 해당 Bat파일을 동작하게 하는 동작 속성을 설정하였습니다)

    - 이렇게 동작 작업이 정상 적으로 등록되어있는지 확인 합니다

 

4. 작업 스케줄러 등록 확인 하기

    - 위의 과정을 모두 이행하셨다면 작업 스케줄러 화면에서 아래에 "실행 중인 작업"에서

      방금 작성하신 스케줄러가 등록된모습을 보실 수 있습니다 이렇게 되면 매일 10초 단위로 스케줄러가 동작하게

      됩니다

 

반응형
반응형

안녕하세요

 

코딩연습생입니다~

 

 

모두 즐거운 명절 보내셨나요?ㅎ

 

저는 코로나로 인하여 연휴 내내 집에서 아이와 함께 보냈습니다~ 아이도 힘들어하고 얼른 백신이 나와서

 

좀 자유로운 삶을 살고 싶어집니다

 

이번 포스팅은 얼마전 구글로 부터 이상한 경고문이 뜨더라구요

 

 

'판매자 정보를 Google sellers.json 파일에 게시하시기 바랍니다'

 

이게 무슨말인가 싶어서 검색을 좀 해보니 해결 방법이 나와 있더라구요

 

1. 구글 애드센스 사이트 접속

https://www.google.co.kr/intl/ko/adsense/start/

 

Google 애드센스 - 웹사이트에서 수익 창출하기

Google 애드센스의 웹사이트 수익 창출 기능을 사용하여 수익을 올려보세요. Google 애드센스에서 광고 크기를 자동으로 최적화하여 광고의 노출 및 클릭 가능성이 높아집니다.

www.google.co.kr

 

2. 개인 정보에서 '판매자 정보 공개 상태' 설정 변경

 

3. 판매자 정보 공개 상태를 공개로 변경

   내부용 -> 공개

 

  비즈니스 도메인 주소 입력

 

이렇게 하면 경고 문구가 사라진다고 하는데...

 

저는 2주가 지나도 사라지질 않더라구요..

 

왜일까요??

 

추가적으로 폭풍 검색을 해보니 추측입니다만 사용중인 제품이 블로그 + @ 일 경우에는 비즈니스 도메인을 입력하면

 

안된다(?)라는 글이 있더라구요

 

예를 들어서

 

현재 운영중인 제품이

 

① 티스토리블로그 + 네이버 블로그

② 티스토리블로그 + 유투브

③ 티스토리블로그 + 기타 블로그

④ 제품 운영중인것이 2개 이상인 경우

 

이렇게 현재 구글 애드센스에 등록되어 있는 제품이 2개 이상일 경우 비즈니스 도메인에 등록이 안되어

 

승인이 안되느것이 아닌가라는 글이 있어서

 

설정을 조금 바꿔서 정보 공개는 공개로 설정하고

 

비즈니스 도메인 주소를 빈칸으로 넣고 저장을 하고 나니

 

 

이렇게 경고 문가가 싹~ 사라졌습니다

 

현재 2틀째 안나타나고 있는데 좀 더 기다려 봐야 할 거 같은데 아마도 운영 중인 모든 제품에 사업자에 대한 정보를 공개 해야 하는데

 

여러개를 운영중인경우에 대한 도메인을 기재할 수가 없기에 한곳만 등록을 해서 경고가 계속 나타나는것이 아닌가 싶습니다

 

혹시 구글이나 검색을 통해 조치 하였는데도 문구가 사라지지 않은 분은 저와 같이 한번 해보시기 바랍니다~

반응형
반응형

안녕하세요

 

코딩연습생입니다~

 

이번 포스팅은 저번 포스팅에 이어서 C#으로 드라이브 용량을 표시하는 프로그램을 만들어 보겟습니다

 

저번 포스팅에서 기간별 폴더 자동 삭제 프로그램을 만들어 봤었는데 

 

현재 내 드라이브 용량이 얼마나 남았는지 확인하면 좋을거 같아서 이어서 포스팅하게 되엇습니다

 

이전 글을 확인하시고자 한다면 아래 링크를 통해 확인하시면 됩니다

 

https://codingman.tistory.com/122

 

[C#] 기간별 폴더 정리(삭제)하기

안녕하세요 코딩연습생입니다~ 이번 포스팅은 C# 언어로 기간별 폴더를 자동 관리하기 위한 삭제 프로그램을 만들어 볼려고 합니다 [준비과정] 1. Form1을 생성하여 기준일을 생성할 텍스트 박스��

codingman.tistory.com

[준비 과정]

1. 비쥬얼 스튜디오 기본 컨트롤러 필요

   - 포스그레스바(ProgressBar), 레이블(Lable), 버튼(Button)

2. 디자인 폼은 이전 포스팅에서 만든 것을 이용할 예정입니다

 

[디자인]

1. ProgressBar

2. Lable를 통한 명칭 표시 및 용량 표시

3. 버튼을 통한 조회

 

[코딩]

- 조회 버튼 클릭 이벤트 발생시 프로그레스바(ProgressBar)용량 표시 및 Lable 수치 값 표시

1. SetDriveSize 변수 생성

   - 프로그레스바(ProgressBar) 및 Lable 값 생성

        public void SetDriveSize(DriveInfo drive, ProgressBar pb, Label title, Label lb)
        {
            string driveName = string.Empty;
            string totalSize = string.Empty;
            string freeSize = string.Empty;
            string usage = string.Empty;

            try
            {
                driveName = drive.Name.Substring(0, 1).ToString();
                totalSize = Convert.ToInt32(drive.TotalSize / 1024 / 1024 / 1024).ToString();
                freeSize = Convert.ToInt32(drive.AvailableFreeSpace / 1024 / 1024 / 1024).ToString();
                usage = (Convert.ToInt32(totalSize) - Convert.ToInt32(freeSize)).ToString();

                pb.Maximum = Convert.ToInt32(totalSize);
                pb.Value = Convert.ToInt32(usage);

                title.Text = string.Format("Disk ({0}:)", driveName);
                title.AutoSize = true;

                lb.Text = string.Format("{0}GB of {1}GB available.", totalSize, freeSize);
                lb.AutoSize = true;
            }
            catch { }
        }

2. GetDrivesize 변수 생성

   - 조회 할려는 드라이브 찾기

        public void GetDriveSize()
        {
            DriveInfo[] drives = DriveInfo.GetDrives();

            foreach(DriveInfo drive in drives)
            {
                if(drive.DriveType == DriveType.Fixed)
                {
                    if(drive.Name.Contains("D"))
                    {
                        SetDriveSize(drive, progressBar1, label24, label25);
                    }
                }
            }
        }

 

3. 버튼 클릭 이벤트를 통한 호출

        private void customButton7_Click(object sender, EventArgs e)
        {
            if (One_Click())
            {
                GetDriveSize();
            }
        }

 

[실행 결과]

- 조회 버튼 클릭시 지정한 드라이브의 용량을 이렇게 표시 해줍니다

 

- 실제 드라이브 상태

반응형
반응형

안녕하세요

 

코딩연습생입니다~

 

이번 포스팅은 C# 언어로 기간별 폴더를 자동 관리하기 위한 삭제 프로그램을 만들어 볼려고 합니다

 

[준비과정]

1. Form1을 생성하여 기준일을 생성할 텍스트 박스를 생성.

2. 파일 삭제를 실행하기 위한 버튼.

 

[폴더 구조]

- 내문서 -> 대상 폴더(Origin, RESULT_OK, RESULT_NG_ -> 세부 하위 폴더들 존재 -> 일자별 폴더

  ex) C:\Users\Administrator\Documents\ImageLog\대상 폴더\하위 폴더

 

[디자인]

- 디자인은 꼭 똑같이 하실 필요는 없습니다~

- 대상위치는 대상 폴더를 지정하기 위한 콤보박스

- 폴더 List 세부 하위 폴더들을 리스트화 해주는 콤보박스

 

[코딩]

1. 대상 폴더를 지정한 뒤 조회 버튼을 눌러 세부 하위 폴더 리스트를 콤보박스화 시키는 부분

   - path 변수에 경로 변수는 사용하시는 환경에 다라 변경해주셔야 합니다

        private void Path_Combo()
        {
            if (comboBox1.SelectedIndex >= 0)
            {
                string path = textBox_path_to_pcl_vision.Text;
                path = System.IO.Path.Combine(path, "ImageLog");
                path = System.IO.Path.Combine(path, comboBox1.SelectedItem.ToString());

                DirectoryInfo di = new DirectoryInfo(path);
                if (di.Exists == true)
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add("FolderName", typeof(string));
                    dt.Columns.Add("FolderPath", typeof(string));

                    DataRow ds = null;

                    foreach (var file in di.GetDirectories())
                    {
                        ds = dt.NewRow();
                        ds["FolderName"] = file.Name;
                        ds["FolderPath"] = file.FullName;
                        dt.Rows.Add(ds);
                    }

                    comboBox2.DataSource = dt;
                    comboBox2.ValueMember = "FolderPath";
                    comboBox2.DisplayMember = "FolderName";
                }
            }
            else
            {
                MessageBox.Show("대상위치를 먼저 선택해주세요.");
            }
            
        }

 

- 대상 위치를 설정하고 조회버튼을 누루면 폴더 List 콤보박스에 하위 디렉토리 목록이 보이게 됩니다

*콤보박스에 ValueMember와 DisplayMember 사용 방법은 아래 링크를 통해 알아 보실 수 잇습니다

https://codingman.tistory.com/119

 

[C#] 폴더안의 파일 목록 만들기(리스트박스)

안녕하세요 코딩연습생입니다~ 요즘 코로나도 문제이지만 태풍이 너무 많이 오네요~ 짜증날 정도로ㅎㅎ 글자님들도 코로나 + 태풍 조심하시길 바랍니다 이번 포스팅은 C#으로 리스트박스(ListBox)

codingman.tistory.com

 

- 구동 시킨 모습입니다

 

- 이제 폴더 삭제를 하기 위한 정리 버튼을 하나 생성해주고 코딩을 해보겠습니다

 

- 정리 버튼 클릭 이벤트에 아래와 같이 코딩을 합니다

        public static void deleteFolder(string folderDir)
        {
            try
            {
                Form1 form = new Form1();

                //기본 일수 14일.
                int deleteday = 14;

                //일수를 수동 지정하였을 경우 해당 일수를 가져옴.
                if (form.FolderDay_Period.Text != "")
                {
                    deleteday = Convert.ToInt32(form.FolderDay_Period.Text);
                }
                
                DirectoryInfo di = new DirectoryInfo(folderDir);
                if (di.Exists)
                {
                    DirectoryInfo[] dirInfo = di.GetDirectories();
                    string IDate = DateTime.Today.AddDays(-deleteday).ToString("yyyyMMdd");

                    foreach (DirectoryInfo dir in dirInfo)
                    {
                        if (IDate.CompareTo(dir.LastWriteTime.ToString("yyyyMMdd")) > 0)
                        {
                            dir.Attributes = FileAttributes.Normal;
                            dir.Delete(true);
                        }
                    }
                }

            }
            catch (Exception) { }
        }

 

- 기준 일자를 설정한뒤 정리 버튼을 누루면 

   대상위치의 하위 폴더의 자식 폴더들 중 생성기간을 기준으로 이전 폴더를 삭제 합니다

 

[실행]

- 내문에서 Origin이라는 폴더에 Cam1_Model_1이라는 하위 폴더 내용을 구조는 아래와 같습니다

 

- 정리 버튼을 누루게 되면 수정한 날짜 지금 현재(2020-09-15)이기 때문에 모두 삭제가 되어야 합니다

  기준 일자 설정이 기본 14일로 지정되어 있기 때문에 별도 일자 설정을 하지 않았다면

  모두 삭제가 되는것이 정상이겠죠?

 

 

- 정상 동작하는걸 확인 했습니다

   이 루트를 반복 시행이나 타이머를 통해 자동 실행되도록 한다면 용량 부족 현상을 막을수 있습니다~

반응형
반응형

안녕하세요~

 

코딩연습생입니다 ㅎㅎ

 

 

이번 포스팅은 팁이라고 하기엔 좀 모호 할수 있는 내용입니다

 

머신러닝을 공부하면서 많이 접하게 되는 것이 바로 파이썬인데요

 

그중에서도 저는 파이토치(PyTorch)를 사용하여 딥러닝을 구현하고 있습니다

 

환경 구현을 C# + 파이썬 + MSSQL 이런 조합으로 구현을 하다가 C#에서 파이썬 py파일을 구동 시키는 법을

 

찾아 구현하게 되어 포스팅 합니다

 

첫번째로 경로 설정입니다

 

현재 PC의 설치된 파이썬 실행 파일을 환경변수에 잡아 주셔야 합니다

(Python.exe)

- 시스템 환경 변수

* 해당 환경 변수는 PC마다 상이할수 있으니 참고만 해주세요

 

 

그다음 C#에서 구동하고자 하는 py 파일의 경로를 지정해야 합니다

 

저는 경로를 클래스로 생성하여 프로젝트 시작 위치에서의 절대 경로를 변수로 지정했습니다

 

*경로는 환경 설정에 따라 다르니 참고만 해주세요

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Data;

namespace PCL_Vision_Settings
{
    class Settings
    {
        public string STARTUP_PATH;
        public string PYTHON_ROOT_PATH;
        public string PYTHON_PATH;
        public string SERVER_PATH;
        public string TRAINING_PATH;
        public string OCR_PREPROCESSING_PATH;
        public string OCR_TRAINING_PATH;
        
        public Settings()
        {
        	STARTUP_PATH = System.Windows.Forms.Application.StartupPath;
            PYTHON_ROOT_PATH = STARTUP_PATH + "Python API폴더 경로";
            PYTHON_PATH = "python.exe 파일 경로";
            SERVER_PATH = PYTHON_ROOT_PATH + "API 서버 실행을 위한 스크립트 경로";
            TRAINING_PATH = PYTHON_ROOT_PATH + "분류 훈련을 위한 스크립트 경로";
            OCR_PREPROCESSING_PATH = PYTHON_ROOT_PATH + "OCR 전처리를 위한 스크립트 경로";
            OCR_TRAINING_PATH = PYTHON_ROOT_PATH + "OCR 주석 작업 및 훈련을 위한 스크립트 경로";
        }

 

위의 소스처럼 변수를 전역변수로 설정하여 클래스에서 절대경로를 설정해주었습니다

 

 

그다음 비쥬얼스튜디오(C#)의 메인 화면으로 돌아와서 버튼이나 py파일을 구동하고자 하는 위치에 다음과 같이

 

코딩을 합니다

 

            string python_path = "\"" + 파이썬 경로 확인 + "\"";
            string training_path = "\"" + 훈련 스크립트 파일 경로 확인 + "\"";
            term_message = 훈련 관련 정보를 추강 입력 인자로 전달;
            System.Diagnostics.Process.Start(python_path, term_message); // 훈련 실행

 

좀 어렵죠??

 

 

정리를 하자면 절대경로를 설정하여 

 

System.Diagnostics.Process.Start()

 

사용하여 py 파일을 python으로 실행시키는 겁니다

 

이러게 한뒤 실행을 하면

 

 

위의 그림처럼 python.exe가 실행되면서 설정해준 py파일을 불러와 자동 실행 시키게 됩니다

 

최대한 내용을 정리해서 포스팅을 했는데 이해가 잘 안되실수도 있습니다~

 

그럴때는 직접 한번 구현해보시면 쉽게 이해가 되실거라 생각됩니다^^

 

반응형
반응형

안녕하세요~

 

코딩연습생입니다

 

MSSQL로 쿼리(Query)를 작성하실때 조회조건으로 가장 많이 사용되는것이 바로 날짜죠..

 

기간별 조회, 기간이후 조회, 등

 

그래서 이번 포스팅은 MSSQL에서 대표적인 날짜 계산 함수에 대해 간략히 소개해 드릴려고 합니다

1. Dateadd

   - dateadd 함수는 날짜를 더하거나 빼기를 할 수 있는 함수 입니다

   예) 월의 마지막 날 구하기

        → select dateadd(month, 1, getdate())-day(getdate())

        1일 더하기

        → select dateadd(day, 1, getdate())

        1월 더하기

        → select dateadd(month, 1, getdate())

        1년 더하기

        → select dateadd(year, 1, getdate())

2. datediff

    - datediff 함수는 날짜와 날짜의 차이를 구하는 함수 입니다

    예) 1일 차이(분) 구하기

         → select datediff(mi, gatdate(), getdate()+1)

             : 1440분

         1일 차이(초) 구하기

         → select datediff(s, getdate(), getdate()+1)

             : 86400초

         1일 차이(시간) 구하기

         → select datediff(hour, getdate(), getdate()+1)

             : 24시간

         1일 차이(일자) 구하기

         → select datediff(day, getdate(), getdate()+1)

             : 1일

         차이(월) 구하기

         → select datediff(month, getdate(), getdate()+31)

             : 1 개월

         차이(년) 구하기

         → select datediff(year, getdate(), getdate()+730)

             : 2년(730일)

 

반응형
반응형

안녕하세요

 

코딩연습생입니다~

 

요즘 코로나도 문제이지만 태풍이 너무 많이 오네요~ 짜증날 정도로ㅎㅎ

글자님들도 코로나 + 태풍 조심하시길 바랍니다

 

이번 포스팅은 C#으로 리스트박스(ListBox)를 사용하여 폴더내의 파일 목록을 만들고 

 

ValueMember와 DisplayMember를 사용하여 속성값, 보여지기값을 사용하는 방법을 알려드릴려고 합니다

 

물론, 이미 다 아실수도 있지만 저는 머리가 나빠서 기록차원에서 포스팅 할께요~ㅎ

 

일단 첫번째는 버튼을 통해 폴더 지정하는 방법입니다

 

그럼 젤 중요한 버튼이 있어야죠

 

간단하게 저는 폴더라는 이름으로 버튼을 생성했습니다

 

그리고 버튼 Click 이벤트에 아래와 같이 코딩을 했습니다

 

                FolderBrowserDialog dialog = new FolderBrowserDialog();
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                
                }

 

폴더를 선택할 수 있는 Dialog를 띄우기 위함입니다

 

버튼을 누루면 아래와 같은 선택 창이 띄게 되지요

 

그럼 두번째로 폴더를 선택한뒤에 그 폴더안에 있는 하위 파일 목록을 만들어야 합니다

 

그 리스트는 C#의 기본 컨트롤중에 리스트박스(ListBox)를 사용했습니다

 

화면 디자인은 심플합니다

그다음 아까 만들었던 버튼 Click이벤트에 파일 목록을 가져와서 리스트뷰에 뿌려줄수 있게 코딩을 합니다

 

                FolderBrowserDialog dialog = new FolderBrowserDialog();
                if (dialog.ShowDialog() == DialogResult.OK)
                {

                    //불량 이미지 폴더
                    string Folder_Path = dialog.SelectedPath;

                    this.listBox1.Refresh();
                    
                    DirectoryInfo di = new DirectoryInfo(Folder_Path);

                    if (di.Exists == true)
                    {
                        DataTable dt = new DataTable();
                        dt.Columns.Add("FileName", typeof(string));
                        dt.Columns.Add("FullName", typeof(string));

                        DataRow ds = null;

                        foreach (FileInfo file in di.GetFiles())
                        {
                            ds = dt.NewRow();
                            ds["FileName"] = file.Name.Substring(0, file.Name.Length - 4);
                            ds["FullName"] = file.FullName;
                            dt.Rows.Add(ds);
                        }

                        listBox1.DataSource = dt;
                        listBox1.ValueMember = "FullName";
                        listBox1.DisplayMember = "FileName";
                        

                    }
                }

 

여기서 보셔야 할 부분은 DataTable를 생성하여 컬럼을 임의로 생성한 부분

 

                        DataTable dt = new DataTable();
                        dt.Columns.Add("FileName", typeof(string));
                        dt.Columns.Add("FullName", typeof(string));

 

그리고 리스트뷰(ListView)에 DataSource를 사용하여 DataTable값을 넣어주고 ValueMember와 DisplayMember를 

 

사용한 부분

 

                        listBox1.DataSource = dt;
                        listBox1.ValueMember = "FullName";
                        listBox1.DisplayMember = "FileName";

 

이렇게 사용하시게 되면 화면에 보이는 값과 속성 값을 따로 사용하실 수 있습니다

 

 

이렇게 활용하여 사용하실수 있습니다

 

반응형
반응형

안녕하세요

 

코딩연습생입니다~

 

아직 끝나지 않은 코로나로 인해 여간 힘든게 아니네요~

 

여러분들도 모두 코로나 감염으로 부터 조심하시길 바랍니다

 

이번 포스팅은 비쥬얼스튜디오(Microsoft Visual Studio)에서 기본으로 제공되고 있는 데이터그리드뷰(DataGridView)를

 

사용할때 기본 디자인이 너무 구리죠?ㅎㅎ

 

 

갠취이긴 하지만 저는 너무 구리게 느껴집니다 그래서 약간의 설정으로 그래도 조금 있어보이는(?) 그런 그리드뷰로 

 

변경할 수 있는 설정법을 알려드릴려고 합니다

 

비쥬얼스튜디오(Microsoft Visual Studio)를 많이 사용하신분들이면 누구나 알고 계시겠지만 저는 어디까지나

 

초보(?) 아니면 연습생(?) 이런 분들을 위한 포스팅이니 이미 알고 계신분들이라면 뒤로가기를 누루시기 바랍니다ㅎㅎ

 

간혹 이런거 포스팅 하지 말아라 라고 말씀하시는 분들고 계셔서 맘이 아플때가 있어서..ㅠ

 

 

[디자인]

1. C#의 Form에 비쥬얼스튜디오(Microsoft Visual Studio)에서 기본적으로 제공하는 데이터그리드뷰(DataGridView)를 삽입합니다

 

- 삽입하는 방법은 좌측 도구상자탭에서 모든 Windows Forms 항목 중에 DataGridView 컨트롤을 마우스로 드래그앤드롭하여 사입합니다

 

 

2. 삽입된 데이터그리드뷰(DataGridView)를 마우스로 클릭하여 속성창에서 아래와 같이 수정합니다

   - AllowUserToAddRows의 속성을 False로 변경

   - AllowUserToAddRows는 기본상태에서 Rows 한줄을 보여줄것인지 하는것 입니다

   - SelectionMode를 FullRowSelect로 변경

   - 데이터그리드뷰(DataGrideView)의 내용을 선택했을때 선택 방법을 설정합니다

     (사용 용도에 따라 사용하셔도 됩니다)

   - 다음 모양 속성 변경입니다 위에서 아래로 상세 설정 화면입니다

 

   - AlternatingRowsDefaultCell 속성

   - 데이터그리드뷰(DataGrideView)의 내용 부분을 별도 설정없이 Row의 구분 색상을 표현 해줍니다

      (말로 이해가 안되시는분은 제일 마지막 완성 이미지를 보시면 이해 하실겁니다)

 

   - ColumnHeadersDefaultCell 기본 헤더 디자인 변경

   - 헤더의 기본 색생, 정렬, 크기등을 설정합니다

 

   - ★ EnableHeadersVisualStyles 값을 False로 변경

         (해당 옵션을 변경하지 않으면 디자인을 변경하셔도 화면에 표시되지 않습니다)

 

이렇게 기본 데이터그리드뷰(DataGridView) 속성을 몇개를 바꾸고 적용하면 아래와 같이

 

멋있는(?) 그리드뷰로 변경됩니다~

 

 

 

앞서 말씀드렸듯이 어디까지나 갠취입니다;;ㅎㅎ 욕하지 마세요~

반응형

+ Recent posts