ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C# .NET] static 함수에서 Control에 접근하기
    Desktop App/C#.Net 2021. 10. 19. 15:55

    로그를 눈에 보이게 처리해야 해서 TextBox에 로그를 남기는 함수를 만들었다.

    근데.. static 함수에서는 this를 사용할 수 없다...

    고민하던 중 생각난 해결책은 아래와 같다.

    
    public partial class Form1 : Form
    {
        public static Form1 instance;
    
        public Form1(){
            InitializeComponent();
            instance = this;
        }
        
        public static void func1(){
        	instance.Log("message");
        }
        
        private void Log(string Message)
        {
        	this.Invoke(new Action(() =>
            {
                try
                {
            	    tb_log.AppendText($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}] {Message}\r\n");
                }
                catch (Exception ex)
                {
            	    Console.WriteLine(ex);
                }
            }));
        }
    }
    
    
    ...

    폼 자체를 싱글톤처럼 활용하는 것이다.

    어차피 중복실행을 막아놔서 상관은 없을 듯 하다.

    'Desktop App > C#.Net' 카테고리의 다른 글

    [C# .NET] Windows 방화벽 등록하기  (0) 2022.03.03
    [C# .NET] static 함수에서 Control에 접근하기  (0) 2021.10.19

    댓글 0

Designed by Tistory.