this.ActiveControl = null;

'프로그래밍 언어 > C#' 카테고리의 다른 글

[C#] 웹페이지 값 가져오기  (0) 2022.09.05
[C#] Yes No 버튼 | 확인 버튼  (0) 2022.08.29
[C#] 명령 프롬프트 실행  (0) 2022.08.26
[C#] C#에서 Python 실행하기  (0) 2022.08.26
[C#] .ini 파일 읽기 쓰기  (0) 2022.08.22
[C#] GUI 연습 | MetroFramework 적용  (0) 2022.08.19
[C#] C# 연습  (0) 2022.06.21

# HttpWebRequest를 사용한 방식

보통 C# Inner 클래스를 만들고 불러오는 방식

 

1. Class 파일 추가 ( Visual Studio 에서 추가하기! )

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

using System.IO;
using System.Net;
using System.Net.Http;

namespace GUI_TEST01
{
    internal class HttpRequest
    {
        // HttpRequest를 실행하는 함수
        public static string GetRequest(String url, HttpMethod method, object param = null)
        {
            // 파라미터가 있을 경우, 익명 클래스로 만들기 때문에 Reflection을 이용해서 데이터를 가져온다.
            if (param != null)
            {
                StringBuilder parameter = new StringBuilder();
                // 파라미터키=파라미터값&파라미터키=파라미터값&파라미터키=파라미터값 의 형태로 만든다.
                foreach (var p in param.GetType().GetProperties())
                {
                    if (parameter.Length > 0)
                    {
                        parameter.Append("&");
                    }
                    parameter.AppendFormat("{0}={1}", p.Name, p.GetValue(param));
                }
                param = parameter.ToString();
            }
            else
            {
                param = "";
            }
            // Http method가 GET 방식의 경우 파라미터를 url 주소 뒤에 붙인다.
            if (HttpMethod.Get.Equals(method))
            {
                if (url.Contains("?"))
                {
                    url += "&" + param;
                }
                else
                {
                    url += "?" + param;
                }
            }

            // url를 통해 HttpWebRequest 클래스를 생성한다.
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            // 해더의 메소드를 정의한다.
            request.Method = method.ToString();
            // 해더의 ContentType를 정의한다.
            request.ContentType = "application/x-www-form-urlencoded";
            // request에 프로퍼티로 정의되지 않는 해더의 경우는 Indexer의 형식으로 정의할 수 있다.
            // 프로퍼티로 정의된 해더의 경우, 아래와 같이 정의할 경우 에러가 발생한다.
            request.Headers["Upgrade-Insecure-Requests"] = "1";

            // Http method가 POST 방식의 경우, 해더 아래에
            if (HttpMethod.Post.Equals(method))
            {
                byte[] byteArray = Encoding.UTF8.GetBytes((string)param);
                request.ContentLength = byteArray.Length;
                using (Stream dataStream = request.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);
                }
            }

            // Http 프로토콜을 접속해서 response 받기
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                // 프로토콜의 반환 코드를 받을 수 있다. (200이면 정상이다.)
                Console.WriteLine((int)response.StatusCode);
                // 스트림으로 반환 결과값을 받는다.
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    return reader.ReadToEnd();
                }
            }
        }
    }
}

2. 버튼 클릭 시 값이 찍힌다.

private void metroButton1_Click(object sender, EventArgs e)
        {
            // this.RunCmd("python C:/Users/Administrator/source/repos/GUI_TEST01/PyScripts/Calculator.py");
            // this.RunCmd("docker exec -it alibi /root/anaconda3/bin/python3 main.py");
            // localhost에 Get 방식으로 접속해서 파라미터는 param=test이다.
            // http://localhost/index.php?param=test
            //String html = GetRequest("http://localhost:5000", HttpMethod.Get, new { param = "test" });
            //Console.WriteLine(html);

            //// localhost에 Post 방식으로 접속해서 파라미터는 param=test이다.
            //html = GetRequest("http://localhost:5000", HttpMethod.Post, new { param = "test" });
            //Console.WriteLine(html);

            //Console.WriteLine("Press any key...");
            //Console.ReadKey();

            String html = HttpRequest.GetRequest("http://localhost:5000", HttpMethod.Get, new { param = "test" });
            Console.WriteLine(html);
        }

 

 

 


# Selenium 방식

1.

도구 - Nuget 패키지 관리자 - 솔루션용 Nuget 패키지 관리

=> Selenium.WebDriver 설치

 

2. namespace 추가

//Selenium Library
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;

3. 

추가 작성 예정

'프로그래밍 언어 > C#' 카테고리의 다른 글

[C#] Winform 모든 포커스 해제  (0) 2022.09.05
[C#] Yes No 버튼 | 확인 버튼  (0) 2022.08.29
[C#] 명령 프롬프트 실행  (0) 2022.08.26
[C#] C#에서 Python 실행하기  (0) 2022.08.26
[C#] .ini 파일 읽기 쓰기  (0) 2022.08.22
[C#] GUI 연습 | MetroFramework 적용  (0) 2022.08.19
[C#] C# 연습  (0) 2022.06.21

// yes no

string message = "Do you want to close this window?";
                string title = "Close Window";
                MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                DialogResult result = MessageBox.Show(message, title, buttons);
                if (result == DialogResult.Yes)
                {
                }
                else
                {
                    // Do something  
                }

// 확인 ok 버튼

string message = "Do you want to close this window?";
                string title = "Close Window";
                MessageBoxButtons buttons = MessageBoxButtons.OK;
                DialogResult result = MessageBox.Show(message, title, buttons);

// (참고) 어플리케이션 종료

this.BeginInvoke(new MethodInvoker(this.Close));

'프로그래밍 언어 > C#' 카테고리의 다른 글

[C#] Winform 모든 포커스 해제  (0) 2022.09.05
[C#] 웹페이지 값 가져오기  (0) 2022.09.05
[C#] 명령 프롬프트 실행  (0) 2022.08.26
[C#] C#에서 Python 실행하기  (0) 2022.08.26
[C#] .ini 파일 읽기 쓰기  (0) 2022.08.22
[C#] GUI 연습 | MetroFramework 적용  (0) 2022.08.19
[C#] C# 연습  (0) 2022.06.21

# CMD 창 켜서 실행

using System.Diagnostics;

Process.Start("cmd.exe", command);

 

# 다른방법 (백그라운드 실행)

using System.Diagnostics;

public void RunCmd(string Command)
        {
            ProcessStartInfo cmd = new ProcessStartInfo();
            Process process = new Process();
            cmd.FileName = @"cmd";
            cmd.WindowStyle = ProcessWindowStyle.Hidden;             // cmd창이 숨겨지도록 하기
            cmd.CreateNoWindow = true;                               // cmd창을 띄우지 안도록 하기

            cmd.UseShellExecute = false;
            cmd.RedirectStandardOutput = true;        // cmd창에서 데이터를 가져오기
            cmd.RedirectStandardInput = true;          // cmd창으로 데이터 보내기
            cmd.RedirectStandardError = true;          // cmd창에서 오류 내용 가져오기

            process.EnableRaisingEvents = false;
            process.StartInfo = cmd;
            process.Start();
            process.StandardInput.Write(@Command + Environment.NewLine);
            // 명령어를 보낼때는 꼭 마무리를 해줘야 한다. 그래서 마지막에 NewLine가 필요하다
            process.StandardInput.Close();

            string result = process.StandardOutput.ReadToEnd();
            StringBuilder sb = new StringBuilder();
            //sb.Append("[Result Info]" + DateTime.Now + "\r\n");
            sb.Append(result);
            sb.Append("\r\n");            
            //textBox1.Text = sb.ToString();
            process.WaitForExit();
            process.Close();
            string ret = sb.ToString();
            Console.WriteLine("Command : " + Command); // 커맨드 확인.
            // Console.WriteLine("Command :" + Command + "\n" + "Return :" + ret);

        }

'프로그래밍 언어 > C#' 카테고리의 다른 글

[C#] Winform 모든 포커스 해제  (0) 2022.09.05
[C#] 웹페이지 값 가져오기  (0) 2022.09.05
[C#] Yes No 버튼 | 확인 버튼  (0) 2022.08.29
[C#] C#에서 Python 실행하기  (0) 2022.08.26
[C#] .ini 파일 읽기 쓰기  (0) 2022.08.22
[C#] GUI 연습 | MetroFramework 적용  (0) 2022.08.19
[C#] C# 연습  (0) 2022.06.21
// C# 

// IronPython
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using IronPython;
using IronPython.Hosting;
using IronPython.Runtime;
using IronPython.Modules;




public void ExecMyPython(string pythonFile)
{
    ScriptEngine engine = Python.CreateEngine();
    ScriptSource source = engine.CreateScriptSourceFromFile(pythonFile);
    ScriptScope scope = engine.CreateScope();
    source.Execute(scope);

    string className = "Calculator";
    dynamic Calculator = scope.GetVariable(className); // 파이썬 내 클래스명 가져오기
    dynamic calc = Calculator(); // 클래스 객체
    int result = calc.add(4, 5); // 클래스에서 함수 사용
    Console.WriteLine(result);
}
# Calculator.py

class Calculator(object):
    def add(self, a, b):
        return a + b

 

 

 

 

https://medialink.tistory.com/41#:~:text=Python%20class%EC%9D%98%20%ED%95%A8%EC%88%98%EB%A1%9C,%ED%95%98%EB%8A%94%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%84%A0%EC%96%B8%ED%95%A9%EB%8B%88%EB%8B%A4.&text=c%23%20%EC%BD%94%EB%93%9C%EB%A5%BC%20%EB%8B%A4%EC%9D%8C%EA%B3%BC,%EA%B2%B0%EA%B3%BC%EB%A5%BC%20%EC%96%BB%EC%9D%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.

 

c#과 Python의 연동

C#과 Python 연결 Linux에서 Python의 입지는 매우 큽니다. 특히 머신 러닝(machine learing) 관련된 내용은 Python으로 작성된 결과가 많아, 이를 c#에서 직접 사용하고 싶은 욕망이 큽니다. 이 글에서는 Python

medialink.tistory.com

 

'프로그래밍 언어 > C#' 카테고리의 다른 글

[C#] Winform 모든 포커스 해제  (0) 2022.09.05
[C#] 웹페이지 값 가져오기  (0) 2022.09.05
[C#] Yes No 버튼 | 확인 버튼  (0) 2022.08.29
[C#] 명령 프롬프트 실행  (0) 2022.08.26
[C#] .ini 파일 읽기 쓰기  (0) 2022.08.22
[C#] GUI 연습 | MetroFramework 적용  (0) 2022.08.19
[C#] C# 연습  (0) 2022.06.21

# 사용 예시

1. ini 파일

[Params]
weightPath='./weight.pth'
pointA='0.0'
pointB='0.0'
pointC='0.0'
pointD='0.0'
pointE='0.0'
pointF='0.0'
pointG='0.0'
pointH='0.0'
pointI='0.0'
pointJ='0.0'
pointK='0.0'
pointL='0.0'
pointM='0.0'
pointN='0.0'
pointO='0.0'
pointP='0.0'
pointQ='0.0'

2. C# 코드

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

// ini 파일 관련
using System.IO;
using System.Runtime.InteropServices;


namespace GUI_TEST01
{
    public partial class Form1 : MetroFramework.Forms.MetroForm //상속 클래스 변경
    {
        public Form1()
        {
            InitializeComponent();
            // ini 쓰기
            // WritePrivateProfileString("WookoaSetting", "TopAlways", "true", "C:\\Setting.ini");
            // WritePrivateProfileString("WookoaSetting", "ViewTray", "false", "C:\\Setting.ini");
            string iniPath = "C:/Users/Administrator/source/repos/GUI_TEST01/conf/ini.ini";
            Load_Threshold(iniPath);

        }
        // ini 파일 객체 
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);


        // 세팅 초기화
        private void metroButton2_Click(object sender, EventArgs e)
        {
            string iniPath = "C:/Users/Administrator/source/repos/GUI_TEST01/conf/default.ini";
            Load_Threshold(iniPath);
            Clear_Image();
        }

        // 세팅 되돌리기
        private void metroButton3_Click(object sender, EventArgs e)
        {
            string iniPath = "C:/Users/Administrator/source/repos/GUI_TEST01/conf/ini.ini";
            Load_Threshold(iniPath);
            Clear_Image();
        }

        // 이미지 로드
        private void metroButton5_Click(object sender, EventArgs e)
        {
            Clear_Image();
            string img_pathA = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-A.JPG";
            string img_pathB = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-B.JPG";
            string img_pathC = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-C.JPG";
            string img_pathD = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-D.JPG";
            string img_pathE = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-E.JPG";
            string img_pathF = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-F.JPG";
            string img_pathG = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-G.JPG";
            string img_pathH = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-H.JPG";
            string img_pathI = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-I.JPG";
            string img_pathJ = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-J.JPG";
            string img_pathK = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-K.JPG";
            string img_pathL = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-L.JPG";
            string img_pathM = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-M.JPG";
            string img_pathN = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-N.JPG";
            string img_pathO = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-O.JPG";
            string img_pathP = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-P.JPG";
            string img_pathQ = "C:/Users/Administrator/source/repos/GUI_TEST01/resources/1번 불량샘플-Q.JPG";

            this.pictureBox_1.Load(img_pathA);
            this.pictureBox_1.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_2.Load(img_pathB);
            this.pictureBox_2.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_3.Load(img_pathC);
            this.pictureBox_3.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_4.Load(img_pathD);
            this.pictureBox_4.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_5.Load(img_pathE);
            this.pictureBox_5.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_6.Load(img_pathF);
            this.pictureBox_6.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_7.Load(img_pathG);
            this.pictureBox_7.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_8.Load(img_pathH);
            this.pictureBox_8.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_9.Load(img_pathI);
            this.pictureBox_9.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_10.Load(img_pathJ);
            this.pictureBox_10.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_11.Load(img_pathK);
            this.pictureBox_11.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_12.Load(img_pathL);
            this.pictureBox_12.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_13.Load(img_pathM);
            this.pictureBox_13.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_14.Load(img_pathN);
            this.pictureBox_14.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_15.Load(img_pathO);
            this.pictureBox_15.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_16.Load(img_pathP);
            this.pictureBox_16.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox_17.Load(img_pathQ);
            this.pictureBox_17.SizeMode = PictureBoxSizeMode.StretchImage;

        }

        // 세팅 저장하기
        private void metroButton4_Click(object sender, EventArgs e)
        {
            string iniPath = "C:/Users/Administrator/source/repos/GUI_TEST01/conf/ini.ini";
            Save_Threshold(iniPath);
        }

        // 양불 판정
        private void metroButton1_Click(object sender, EventArgs e)
        {

        }

        private void Clear_Image()
        {
            this.pictureBox_1.Image = null;
            this.pictureBox_2.Image = null;
            this.pictureBox_3.Image = null;
            this.pictureBox_4.Image = null;
            this.pictureBox_5.Image = null;
            this.pictureBox_6.Image = null;
            this.pictureBox_7.Image = null;
            this.pictureBox_8.Image = null;
            this.pictureBox_9.Image = null;
            this.pictureBox_10.Image = null;
            this.pictureBox_11.Image = null;
            this.pictureBox_12.Image = null;
            this.pictureBox_13.Image = null;
            this.pictureBox_14.Image = null;
            this.pictureBox_15.Image = null;
            this.pictureBox_16.Image = null;
            this.pictureBox_17.Image = null;            
        }

        private void Save_Threshold(string iniPath)
        {
            // ini 쓰기           
            WritePrivateProfileString("Params", "pointA", metroTextBox1.Text, iniPath);
            WritePrivateProfileString("Params", "pointB", metroTextBox2.Text, iniPath);
            WritePrivateProfileString("Params", "pointC", metroTextBox3.Text, iniPath);
            WritePrivateProfileString("Params", "pointD", metroTextBox4.Text, iniPath);
            WritePrivateProfileString("Params", "pointE", metroTextBox5.Text, iniPath);
            WritePrivateProfileString("Params", "pointF", metroTextBox6.Text, iniPath);
            WritePrivateProfileString("Params", "pointG", metroTextBox7.Text, iniPath);
            WritePrivateProfileString("Params", "pointH", metroTextBox8.Text, iniPath);
            WritePrivateProfileString("Params", "pointI", metroTextBox9.Text, iniPath);
            WritePrivateProfileString("Params", "pointJ", metroTextBox10.Text, iniPath);
            WritePrivateProfileString("Params", "pointK", metroTextBox11.Text, iniPath);
            WritePrivateProfileString("Params", "pointL", metroTextBox12.Text, iniPath);
            WritePrivateProfileString("Params", "pointM", metroTextBox13.Text, iniPath);
            WritePrivateProfileString("Params", "pointN", metroTextBox14.Text, iniPath);
            WritePrivateProfileString("Params", "pointO", metroTextBox15.Text, iniPath);
            WritePrivateProfileString("Params", "pointP", metroTextBox16.Text, iniPath);
            WritePrivateProfileString("Params", "pointQ", metroTextBox17.Text, iniPath);

        }

        private void Load_Threshold(string iniPath)
        {

            // ini 파일 읽기
            StringBuilder weightPath = new StringBuilder();
            StringBuilder pointA = new StringBuilder();
            StringBuilder pointB = new StringBuilder();
            StringBuilder pointC = new StringBuilder();
            StringBuilder pointD = new StringBuilder();
            StringBuilder pointE = new StringBuilder();
            StringBuilder pointF = new StringBuilder();
            StringBuilder pointG = new StringBuilder();
            StringBuilder pointH = new StringBuilder();
            StringBuilder pointI = new StringBuilder();
            StringBuilder pointJ = new StringBuilder();
            StringBuilder pointK = new StringBuilder();
            StringBuilder pointL = new StringBuilder();
            StringBuilder pointM = new StringBuilder();
            StringBuilder pointN = new StringBuilder();
            StringBuilder pointO = new StringBuilder();
            StringBuilder pointP = new StringBuilder();
            StringBuilder pointQ = new StringBuilder();

            GetPrivateProfileString("Params", "weightPath", "", weightPath, weightPath.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointA", "", pointA, pointA.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointB", "", pointB, pointB.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointC", "", pointC, pointC.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointD", "", pointD, pointD.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointE", "", pointE, pointE.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointF", "", pointF, pointF.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointG", "", pointG, pointG.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointH", "", pointH, pointH.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointI", "", pointI, pointI.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointJ", "", pointJ, pointJ.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointK", "", pointK, pointK.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointL", "", pointL, pointL.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointM", "", pointM, pointM.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointN", "", pointN, pointN.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointO", "", pointO, pointO.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointP", "", pointP, pointP.Capacity, iniPath);
            GetPrivateProfileString("Params", "pointQ", "", pointQ, pointQ.Capacity, iniPath);


            // ini 파일로 폼세팅
            this.metroTrackBar1.Value = (int)(float.Parse(pointA.ToString()) * 100);
            this.metroTextBox1.Text = (((float)this.metroTrackBar1.Value) / 100).ToString();

            this.metroTrackBar2.Value = (int)(float.Parse(pointB.ToString()) * 100);
            this.metroTextBox2.Text = (((float)this.metroTrackBar2.Value) / 100).ToString();

            this.metroTrackBar3.Value = (int)(float.Parse(pointC.ToString()) * 100);
            this.metroTextBox3.Text = (((float)this.metroTrackBar3.Value) / 100).ToString();

            this.metroTrackBar4.Value = (int)(float.Parse(pointD.ToString()) * 100);
            this.metroTextBox4.Text = (((float)this.metroTrackBar4.Value) / 100).ToString();

            this.metroTrackBar5.Value = (int)(float.Parse(pointE.ToString()) * 100);
            this.metroTextBox5.Text = (((float)this.metroTrackBar5.Value) / 100).ToString();

            this.metroTrackBar6.Value = (int)(float.Parse(pointF.ToString()) * 100);
            this.metroTextBox6.Text = (((float)this.metroTrackBar6.Value) / 100).ToString();

            this.metroTrackBar7.Value = (int)(float.Parse(pointG.ToString()) * 100);
            this.metroTextBox7.Text = (((float)this.metroTrackBar7.Value) / 100).ToString();

            this.metroTrackBar8.Value = (int)(float.Parse(pointH.ToString()) * 100);
            this.metroTextBox8.Text = (((float)this.metroTrackBar8.Value) / 100).ToString();

            this.metroTrackBar9.Value = (int)(float.Parse(pointI.ToString()) * 100);
            this.metroTextBox9.Text = (((float)this.metroTrackBar9.Value) / 100).ToString();

            this.metroTrackBar10.Value = (int)(float.Parse(pointJ.ToString()) * 100);
            this.metroTextBox10.Text = (((float)this.metroTrackBar10.Value) / 100).ToString();

            this.metroTrackBar11.Value = (int)(float.Parse(pointK.ToString()) * 100);
            this.metroTextBox11.Text = (((float)this.metroTrackBar11.Value) / 100).ToString();

            this.metroTrackBar12.Value = (int)(float.Parse(pointL.ToString()) * 100);
            this.metroTextBox12.Text = (((float)this.metroTrackBar12.Value) / 100).ToString();

            this.metroTrackBar13.Value = (int)(float.Parse(pointM.ToString()) * 100);
            this.metroTextBox13.Text = (((float)this.metroTrackBar13.Value) / 100).ToString();

            this.metroTrackBar14.Value = (int)(float.Parse(pointN.ToString()) * 100);
            this.metroTextBox14.Text = (((float)this.metroTrackBar14.Value) / 100).ToString();

            this.metroTrackBar15.Value = (int)(float.Parse(pointO.ToString()) * 100);
            this.metroTextBox15.Text = (((float)this.metroTrackBar15.Value) / 100).ToString();

            this.metroTrackBar16.Value = (int)(float.Parse(pointP.ToString()) * 100);
            this.metroTextBox16.Text = (((float)this.metroTrackBar16.Value) / 100).ToString();

            this.metroTrackBar17.Value = (int)(float.Parse(pointQ.ToString()) * 100);
            this.metroTextBox17.Text = (((float)this.metroTrackBar17.Value) / 100).ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            //Console.WriteLine(this.metroComboBox1.Items[0]);
            //this.metroComboBox1.Text = this.metroComboBox1.Items[0].ToString();
            
            this.MinimumSize = new Size(1396, 820);
            this.MaximumSize = new Size(1396, 820);


        }
        
        private void htmlLabel1_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox1_Click(object sender, EventArgs e)
        {

        }

      

        private void metroTextBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar1.Value = (int)(float.Parse(this.metroTextBox1.Text) * 100);
            }                
            catch {
                this.metroTextBox1.Text = (((float)this.metroTrackBar1.Value) / 100).ToString();
            }
                
        }
       
        private void metroTextBox2_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar2.Value = (int)(float.Parse(this.metroTextBox2.Text) * 100);
            }
            catch
            {
                this.metroTextBox2.Text = (((float)this.metroTrackBar2.Value) / 100).ToString();
            }

        }

        private void metroTextBox3_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar3.Value = (int)(float.Parse(this.metroTextBox3.Text) * 100);
            }
            catch
            {
                this.metroTextBox3.Text = (((float)this.metroTrackBar3.Value) / 100).ToString();
            }

        }

        private void metroTextBox4_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar4.Value = (int)(float.Parse(this.metroTextBox4.Text) * 100);
            }
            catch
            {
                this.metroTextBox4.Text = (((float)this.metroTrackBar4.Value) / 100).ToString();
            }

        }

        private void metroTextBox5_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar5.Value = (int)(float.Parse(this.metroTextBox5.Text) * 100);
            }
            catch
            {
                this.metroTextBox5.Text = (((float)this.metroTrackBar5.Value) / 100).ToString();
            }
        }

        private void metroTextBox6_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar6.Value = (int)(float.Parse(this.metroTextBox6.Text) * 100);
            }
            catch
            {
                this.metroTextBox6.Text = (((float)this.metroTrackBar6.Value) / 100).ToString();
            }
        }

        private void metroTextBox7_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar7.Value = (int)(float.Parse(this.metroTextBox7.Text) * 100);
            }
            catch
            {
                this.metroTextBox7.Text = (((float)this.metroTrackBar7.Value) / 100).ToString();
            }
        }

        private void metroTextBox8_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar8.Value = (int)(float.Parse(this.metroTextBox8.Text) * 100);
            }
            catch
            {
                this.metroTextBox8.Text = (((float)this.metroTrackBar8.Value) / 100).ToString();
            }
        }

        private void metroTextBox9_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar9.Value = (int)(float.Parse(this.metroTextBox9.Text) * 100);
            }
            catch
            {
                this.metroTextBox9.Text = (((float)this.metroTrackBar9.Value) / 100).ToString();
            }
        }

        private void metroTextBox10_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar10.Value = (int)(float.Parse(this.metroTextBox10.Text) * 100);
            }
            catch
            {
                this.metroTextBox10.Text = (((float)this.metroTrackBar10.Value) / 100).ToString();
            }
        }

        private void metroTextBox11_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar11.Value = (int)(float.Parse(this.metroTextBox11.Text) * 100);
            }
            catch
            {
                this.metroTextBox11.Text = (((float)this.metroTrackBar11.Value) / 100).ToString();
            }
        }

        private void metroTextBox12_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar12.Value = (int)(float.Parse(this.metroTextBox12.Text) * 100);
            }
            catch
            {
                this.metroTextBox12.Text = (((float)this.metroTrackBar12.Value) / 100).ToString();
            }
        }

        private void metroTextBox13_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar13.Value = (int)(float.Parse(this.metroTextBox13.Text) * 100);
            }
            catch
            {
                this.metroTextBox13.Text = (((float)this.metroTrackBar13.Value) / 100).ToString();
            }
        }

        private void metroTextBox14_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar14.Value = (int)(float.Parse(this.metroTextBox14.Text) * 100);
            }
            catch
            {
                this.metroTextBox14.Text = (((float)this.metroTrackBar14.Value) / 100).ToString();
            }
        }

        private void metroTextBox15_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar15.Value = (int)(float.Parse(this.metroTextBox15.Text) * 100);
            }
            catch
            {
                this.metroTextBox15.Text = (((float)this.metroTrackBar15.Value) / 100).ToString();
            }
        }

        private void metroTextBox16_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar16.Value = (int)(float.Parse(this.metroTextBox16.Text) * 100);
            }
            catch
            {
                this.metroTextBox16.Text = (((float)this.metroTrackBar16.Value) / 100).ToString();
            }
        }

        private void metroTextBox17_TextChanged(object sender, EventArgs e)
        {
            try
            {
                this.metroTrackBar17.Value = (int)(float.Parse(this.metroTextBox17.Text) * 100);
            }
            catch
            {
                this.metroTextBox17.Text = (((float)this.metroTrackBar17.Value) / 100).ToString();
            }
        }

        private void metroTrackBar1_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox1.Text = (((float)this.metroTrackBar1.Value) / 100).ToString();
        }
        private void metroTrackBar2_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox2.Text = (((float)this.metroTrackBar2.Value) / 100).ToString();

        }

        private void metroTrackBar3_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox3.Text = (((float)this.metroTrackBar3.Value) / 100).ToString();
        }

        private void metroTrackBar4_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox4.Text = (((float)this.metroTrackBar4.Value) / 100).ToString();
        }

        private void metroTrackBar5_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox5.Text = (((float)this.metroTrackBar5.Value) / 100).ToString();
        }

        private void metroTrackBar6_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox6.Text = (((float)this.metroTrackBar6.Value) / 100).ToString();
        }

        private void metroTrackBar7_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox7.Text = (((float)this.metroTrackBar7.Value) / 100).ToString();
        }

        private void metroTrackBar8_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox8.Text = (((float)this.metroTrackBar8.Value) / 100).ToString();
        }

        private void metroTrackBar9_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox9.Text = (((float)this.metroTrackBar9.Value) / 100).ToString();
        }

        private void metroTrackBar10_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox10.Text = (((float)this.metroTrackBar10.Value) / 100).ToString();
        }

        private void metroTrackBar11_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox11.Text = (((float)this.metroTrackBar11.Value) / 100).ToString();
        }

        private void metroTrackBar12_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox12.Text = (((float)this.metroTrackBar12.Value) / 100).ToString();
        }

        private void metroTrackBar13_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox13.Text = (((float)this.metroTrackBar13.Value) / 100).ToString();
        }

        private void metroTrackBar14_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox14.Text = (((float)this.metroTrackBar14.Value) / 100).ToString();
        }

        private void metroTrackBar15_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox15.Text = (((float)this.metroTrackBar15.Value) / 100).ToString();
        }

        private void metroTrackBar16_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox16.Text = (((float)this.metroTrackBar16.Value) / 100).ToString();
        }

        private void metroTrackBar17_ValueChanged(object sender, EventArgs e)
        {
            this.metroTextBox17.Text = (((float)this.metroTrackBar17.Value) / 100).ToString();
        }

        private void metroTextBox2_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox3_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox4_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox5_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox8_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox9_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox10_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox12_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox14_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox15_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox16_Click(object sender, EventArgs e)
        {

        }

        private void metroTextBox17_Click(object sender, EventArgs e)
        {

        }

    }
}

 

https://wookoa.tistory.com/417

 

C# / ini 파일 읽기 및 쓰기: kernel32 사용하지 않고

프로그램을 개발하다 보면 사용자 환경을 저장하는 설정 파일을 읽거나 쓰는 경우가 발생한다. 그중 많이 사용되는 방법 중 하나가 .ini 파일을 사용하는 방법이며, .ini 파일은 일정한 문법적인

wookoa.tistory.com

 

'프로그래밍 언어 > C#' 카테고리의 다른 글

[C#] Winform 모든 포커스 해제  (0) 2022.09.05
[C#] 웹페이지 값 가져오기  (0) 2022.09.05
[C#] Yes No 버튼 | 확인 버튼  (0) 2022.08.29
[C#] 명령 프롬프트 실행  (0) 2022.08.26
[C#] C#에서 Python 실행하기  (0) 2022.08.26
[C#] GUI 연습 | MetroFramework 적용  (0) 2022.08.19
[C#] C# 연습  (0) 2022.06.21

1. Visual Studio .NET 선택

 

2. 왼쪽 도구상자에 컴포넌트가 들어있음

 

3. MetroFramework 적용

도구 - NuGET 패키지 관리자 - 솔루션용 NuGet 패키지 관리 - 검색해서 다운로드

 

4.

Form1.cs 코드 변경 

네임스페이스는 프로젝트명으로.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace ExamMetroUI
{
    public partial class Form1 : MetroFramework.Forms.MetroForm //상속 클래스 변경
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}

5.

내가 세팅한 레이아웃

'프로그래밍 언어 > C#' 카테고리의 다른 글

[C#] Winform 모든 포커스 해제  (0) 2022.09.05
[C#] 웹페이지 값 가져오기  (0) 2022.09.05
[C#] Yes No 버튼 | 확인 버튼  (0) 2022.08.29
[C#] 명령 프롬프트 실행  (0) 2022.08.26
[C#] C#에서 Python 실행하기  (0) 2022.08.26
[C#] .ini 파일 읽기 쓰기  (0) 2022.08.22
[C#] C# 연습  (0) 2022.06.21

# 디버깅 (대소문자 주의)

Debug.Log("Hello Unity");

 

# 변수 세팅 

int  a;

float b;

string c;

bool d;

 

# 그룹형 변수 (배열, 리스트)

string[] monsters = {"","",""};

List<string> items = new List<string>();

items.Add("");

items.RemoveAt(0);

 

# 비교연산자

isFullLevel = level ==fullLevel;

bool isEndTutorial = level > 10;

bool isBadCondition = health <= 50 && mana <= 20;  # And 연산자

bool isBadCondition = health <= 50 || mana <= 20;  # Or 연산자

string condition = isBadCondition ? "나쁨" : "좋음";

 

# 조건문

if (true) {

}

else {

}

 

switch (파라미터) {

      case "":

             break;

      default:

             break;

}

 

# 반복문

while () {

}

for (int count = 0; count < 10 ; count++)  {

}

foreach (string monster in mosters){

}

 

# 함수

int Heal(int health) # 반환할 타입을 명시해줘야함.

{

        return health;

}

 

void Heal() # 함수가 반환할 데이터가 없다는 뜻

{

}

 

 

+ Recent posts