닷넷
-
C# 숫자만 입력되게 하는 방법들닷넷/WinForms 2019. 4. 5. 08:54
금액이나 수량이 입력되는 텍스트박스를 만들 때 숫자가 아닌 것이 입력될 경우 계산에 오류를 주는 등 치명적인 오류가 발생할 수 있다. 그러므로 아예 입력될 때부터 숫자만 입력되게 할 수 있는 방법들에 대해 정리해 보았다. 1) KeyPress 이벤트에서 핸들링 [: 한글 입력은 ProcessKey이기 때문에 KeyPress 이벤트로는 한글 입력을 막지 못한다. 아래 방법 중 한가지를 같이 쓰던가 해야할 것이다.] private void txtPrepay_KeyPress(object sender, KeyPressEventArgs e) { // 숫자와 백스페이스만 입력가능 if (!(char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) { ..
-
C# 윈폼을 단순하지만 예쁜 디자인으로 탈바꿈 해주는 메트로폼 feat.Visual Studio에서 Metro UI Framework 추가하기닷넷/WinForms 2019. 3. 4. 14:37
비주얼 스튜디오에서 기본적인 C# 윈도우폼을 만들면 아래와 같이 회색풀하다. =예쁘지가 않다. 이런 윈폼을 예쁘게 꾸미기 위해 여러 아이콘과 이미지를 구해 꾸미곤 했는데 그러다 보면 코딩은 기본이고 거기에 원하는 이미지를 찾거나 만들어 배치하느라 시간이 배로 들었다. 혹은 라이센스를 구매해서 데브나 텔레릭 등의 UI를 사용해야 한다. (회사가.....) 윈폼대신 무료이거나 비용이 적으면서 쉽게 구성할 수 있는 쓸만한게 어디 없을까? 세상에 Windows 운영체제가 버전이 올라가면서 특히 윈도우 앱을 위해 발전한 Metro 디자인이 있었다. 위에 윈폼을 메트로폼으로 바꾸면 아래와 같은 화면으로 바뀐다. =단순하지만 예쁘다. 자 그럼 이것을 어떻게 적용할까? 1. 첫 번째: MetroFramework 설치하..
-
Tizen C# load local image, res 폴더에 있는 이미지 읽기 (ImageSource.FromFile)닷넷/C# 2019. 1. 3. 11:41
타이젠 앱을 다 만들고 삼성 갤럭시 앱스에 판매등록 했었는데 인증심사에서 떨어졌다. 왜 그런고 하니 이미지 파일을 읽을 수가 없어 앱이 제대로 실행되지 않았다. 디버깅할 때야 파일 경로로 이미지를 선택할 수 있는데 실제 갤럭시 워치에서 앱이 실행되려면 이미지 앱 자체에서 불러올 수 있게 해야 했다. 타이젠에 추가된 언어는 c#보다는 자마린에 가까워서 내가 알던 방식으로는 리소스폴더에 접근할 수 없었고,구글링을 하며 이것 저것 해보아도 도저히 도저히 되지 않다가 한 달이 지나 잊고 있었다. 오늘에서야 그 방법을 찾을 수 있었다. https://stackoverflow.com/questions/44609222/image-in-tizen-mobile-is-not-visible 이미지 파일을 res 폴더에 넣고..
-
C# foreach DataRow in DataSet닷넷/C# 2018. 12. 11. 17:21
private void Example(){ SqlConnection sqlConnection = new SqlConnection("server=localhost;database=MyDatabase;User ID=uid;Password=pwd;"); SqlDataAdapter sqlAdapter = new SqlDataAdapter("SELECT ID, Name, Mobile FROM Users", sqlConnection); DataSet ds = new DataSet(); sqlAdapter.Fill(ds, "Users"); foreach (DataRow dr in ds.Tables["Users"].Rows) { Console.WriteLine(dr["ID"] + "\t" + dr["Name"]+ "\..
-
C# DataGridView 추가행에 기본값 설정하기 (DefaultValuesNeeded 이벤트)닷넷/WinForms 2018. 12. 10. 14:43
// DataGridView 이벤트 중에 DefaultValuesNeeded를 이용한다.private void dataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e){ // 이벤트로 넘어 온 DataGridView Row의 칼럼에 값을 넣는다. e.Row.Cells["Name"].Value = value; // 예제 코드 e.Row.Cells["City"].Value = "Seoul"; e.Row.Cells["Country"].Value = "Korea";}Colored by Color Scriptercs 테스트 영상 행이 추가될 때 DefaultValuesNeeded 이벤트에 입력한 기본값이 바로 적용되지 않는다.영상을 ..
-
C# 웹통신 요청 및 응답 (WebRequest POST, WebResponse) (ContentType: application/x-www-form-urlencoded)닷넷/C# 2018. 11. 15. 10:08
private void HTTPPost(){ string sParam = "sParam1=value1&sParam2=value2"; string sUrl = "http://abc/web"; // 서버 접속 WebRequest webRequest = WebRequest.Create(sUrl); webRequest.Method = "POST"; // 데이터 전송 byte[] bytearry = Encoding.UTF8.GetBytes(sParam); webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = bytearry.Length; Stream stream = webRequest.GetRequestStr..
-
C# 우선순위 큐, Priority queue닷넷/C# 2018. 11. 7. 18:30
큐랑 스택을 섞어 쓸 방법이 어디 없을까 구글링해보다가 우선순위 큐라는 걸 알게 되었다. 학창시절, 자료구조 과목에선 안 배웠던 것 같은데.. 우선순위 큐란, 위키백과에 따르면 각 원소들이 우선순위를 가지며 높은 우선 순위를 가진 원소가 낮은 우선순위를 가진 원소보다 먼저 처리되고, 만약 두 원소가 같은 우선순위를 가진다면 큐에 의해서(저장된 순서대로) 처리 되는 자료구조를 말한다. 개념을 알았으면 구현을 할 차례! 큐나 스택은 Queue와 Stack이라는 (이름 그대로 알 수 있는) 클래스가 있어서 쉽게 구현할 수 있었으나 우선순위 큐는 그런 클래스가 존재하지 않았다. C#에서는 우선순위 큐를 어떻게 구현할 수 있을까? 힌트는 위키백과에서 찾을 수 있었다. 그렇게 스스로 구현하기 위해 코드를 작성하다가..
-
C# JSON POST and GET (정보 전달 및 확인)닷넷/C# 2018. 11. 2. 10:04
/* url = http://10.0.0.1 웹서버 주소 lblUrl.Text = { "key1":"value1", "key2":"value2", "key3":"value3" } JSON 문자열*/// JSON POST (정보 전달)private void JPOST(){ try { // JSON 데이터 전송 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ContentType = "application/json"; request.Method = "POST"; using (StreamWriter stream = new StreamWriter(request.GetRequestStream())) { stream.Write(lbl..
-
C# JSON 파싱하기닷넷/C# 2018. 10. 31. 12:11
2023.04.04 - [C#] - C# JSON 파일 읽기/쓰기 (Deserialize/Serialize) 비주얼스튜디오에 Newtonsoft.Json을 설치했다는 가정하에 c#에서 Json 파싱하는 법을 작성하도록 하겠습니다. 아직 설치 하지 못한 분은 아래 글에서 설치하기를 따라하시면 됩니다. 2018/10/26 - [프로그래밍/C#] - C# Json 파싱하기 전, 비주얼스튜디오 프로젝트에 Newtonsoft.Json 설치하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 using Newtonsoft.Json.Linq; private void JsonParse() { using (WebClient wc = n..
-
C# Json 파싱하기 전, 비주얼스튜디오 프로젝트에 Newtonsoft.Json 설치하기닷넷/C# 2018. 10. 26. 16:31
짤막 상식JSON이란? JSON (JavaScript Object Notation)은 사람이 읽을 수 있는 데이터로 교환하기 위한 표준 디자인입니다. JSON은 트리 구조로 작동하며 비교하자면 XML처럼 보이는데 XML보다 더 짧고 사용하기가 쉽습니다. JSON과 XML 구조 비교 JSON XML { "companys":{ "company1":"company name", "company2":[ { "name":"comany2 name" }, { "address":"seoul" }, { "tel":"012-3456"} ] } } company name comany2 name seoul 012-3456 Newtonsoft.Json 설치하기 1. 도구에 NuGet 패키지 관리자 > 솔루션용 NuGet 패키지 ..
-
C# (Windows 작업스케줄러를 사용하지 않기 위한...) 특정시간마다 이벤트를 실행시키는 방법닷넷/C# 2018. 10. 19. 11:49
Windows 작업 스케줄러를 이용하지 않고 특정 시간에만 이벤트 또는 메소드를 실행하게 할 수 있는 방법이 없을까 검색해보다가 특정 시간을 계산해서 그 시간에만 이벤트를 실행하는 방법을 찾았다. 예제 코드는 매일 새벽 3시에 이벤트를 실행시키는 타이머이다. 2022-04-22 16:45 현재 시간으로 부터 runAt까지의 남은 시간을 구해서 그 뒤에 타이머가 실행되게 하고 그 다음에는 매 24시간마다 한 번씩 실행 되게 하는 코드이다. 이때, "시"만을 기준으로 하다 보니 딱 3시 마다를 원하면 프로그램도 정각에 실행시켜야 하는 단점이 있어서 시 뿐만 아니라 분, 초 또한 현재시간에서 runAt까지 남은 분, 초도 같이 계산 될 수 있게 예제 코드를 수정 한다. using System.Timers; p..
-
C# [펌] 윈도우 Timer와 스레드 Timer의 차이점 및 사용할 때 주의할 점닷넷/WinForms 2018. 10. 1. 11:55
[출처: http://ccambo.blogspot.com/2013/03/c-timer.html] C# 에서 Timer 사용할 때 주의할 점. 예전에 알고 지내시던 분의 질문을 받았다. Windows Forms 개발을 하는데, 주기적 (대략 1분)으로 데이터 요청을 하는 프로그램을 작성하기 위해서 Timer 를 사용하는데, 어떤 기능을 처리해야 하기 때문에 Sleep 을 같이 사용했다고 한다. 여기서 발생하는 문제는 Sleep 5초를 주었더니, Timer 까지 5초 동안 멈춘다는 것이다. Timer 라는 것은 기본적으로 시간의 흐름을 측정하는 기능이기 때문에 Sleep 을 했다고 해서 Timer 가 멈추는 일은 생겨서는 안된다. 그러나 실제 샘플을 만들어 보면 ... Timer 가 Sleep 만큼 동작이 ..
-
C# [펌] Parallel.For 병렬 For문닷넷/C# 2018. 9. 27. 18:28
Paralle.For 사용방법병렬 포문 사용법 https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-write-a-simple-parallel-for-loopHow to: Write a Simple Parallel.For LoopHow to: Write a Simple Parallel.For Loop 9 minutes to read Contributors all This topic contains two examples that illustrate the ...docs.microsoft.com