programing/C# 26

[C#] Monodevelop unsafe 사용

직접 코드를 짜서 unsafe를 사용한 것이 아니라 라이브러리를 가져다 쓰는데 unsafe때문에 자꾸 빌드 에러가 낫다.그래서 어떻게 사용가능하게 설정하는지 알아보자앗. 우선 Visual Studio가 아닌 monodevelop 만 알아보도록 하자 설정이 안된 상태에서 빌드시 에러 화면을 보면"Unsafe code requires the `unsafe' command line option to be specified" 에러가 발생한다.인터넷에 뒤지다 보니 커뮤니티에 질문이 올라와 있는 것을 보고 해결방법을 찾았다. 1. 우선 좌측에서 프로젝트를 클릭 2. Project -> [Project이름] Options 선택 선택을 하면 위와 같은 창이 나오고 Build > General >Allow 'unsafe..

programing/C# 2016.10.04

[C#] 프로그램 진행 시간(StopWatch)

라즈베리파이에서 프로그램 개발중인데 이게 얼마나 느린지... 를 알기위해 프로그램 진행 시간을 알아야 했다. 방법을 알아보잣. 코드는 매우 심플하다. StopWatch Class 를 사용할 것이다. using System; using System.Diagnostics; using System.Threading; namespace test1 { class MainClass { public static void Main(string[] args) { Console.WriteLine("Hello World!"); Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(150); Console.WriteLine(sw.ElapsedMilliseconds.ToStrin..

programing/C# 2016.09.29

[C#] 폼 닫기 안되게.. (FormClosing Event)

실시간으로 파일에 로그를 남기는 폼이 떠 있는데 닫기를 누르면 로그가 중단된다.그래서.. 닫기를 눌렀을 때 진짜 닫을 것인지 묻고 그 결과에 따라 폼을 닫히게도 하고 그대로 두기도 하는 방법을 알아보자. 이전에 키 프레스 이벤트에서 키 필터 하는 것을 보고 이것도 가능할 것이라 생각되어 무작정 코딩을 해보았다. 우선 닫히지 않게 해보았다. private void Form1_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; } 인자로 넘어오는 FormClosingEventArgs 의 속성을 보니까 Cancel이 있었고, 설명을 보아하니이 이벤트를 취소할 수 있다고 나왔다. true로 설정을 바꾸면 폼이 닫히질 않는다... 이제 기능..

programing/C# 2016.09.26

[C#] 파일 내용 불러오기(이메일로 보낼 내용)

프로그램이 일정 시간마다 상태를 체크해서 문제가 있을 시 메일을 보내는 코드를 작성을 작성 중..메일 내용을 바꾸고 싶은데 프로그램을 계속 수정을 할 수 없으니 파일내용을 불러 오도록 수정하려고 한다.장문이 될까 싶어 테스트..사용자 입장에서 프로그램을 제작하기란 쉽지 않네... namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string path = @"c:\Temp\readme.txt"; System.IO.StreamReader psReader = new System.IO.StreamReader(path, System.Text.Encoding.GetEncoding(949)); string email = ..

programing/C# 2016.09.22

[C#] Chart Y축 타이틀..

C#에서 Line Chart를 사용하고 있는데Series를 2개 쓰면서 Y축을 주,보조를 사용하게 되었다.그런데 어느라인이 어떤 축을 사용하는지 명확하지가 않아표시를 하려는데, 이거 검색으로 도저히 안나오더라. 그래서.. 클래스를 하나씩 하나씩 뒤지면서 테스트해보다가 찾아냈다. 힘들었다... ㅠㅠ chart1.ChartAreas[0].AxixY.Title = "온도"; chart1.ChartAreas[0].AxixY2.Title = "습도"; 찾아냈지만 뭔가 허무하군.. 적용된 것만 결과물로...

programing/C# 2016.09.19

[C#] DataGridView 간 DataRow 이동.(DataTable add 시 이 행은 이미 다른 테이블에 속해 있습니다.)

오늘은 삽질을 꽤나 오래 했다. DataGridView 간 DataRow를 이동시키려고 했는데 자꾸 예외가 떳다. 상황은 DataGridView에 DataTable을 바인딩 시키고 클릭한 Row를 삭제하고 옆에 있는 DataGrid에 옮기는 것이다. 이 상태에서 홍길동을 클릭하면 오른쪽 으로 옮겨가는 것을 할 것이다. 이런식이다. public partial class Form1 : Form { DataTable dt = new DataTable(); DataTable dt2 = new DataTable(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { DataRow row = n..

programing/C# 2016.09.03

[C#] 폼(Form) 최소, 최대, 닫기 버튼 없애기

Server/Client 프로그램을 만들던 중Client가 로그인이나 다른 연결 시도 시 지연이 될 때가 있어서 지연되는 동안 ProgressBar를 띄우려고 했었다.그런데.. 이것이 닫기버튼이 있어서 예상치 못하게 종료가 되면 ProgressBar가 있는 Form을 닫는 문장에서 에러가 발생했다.그래서 닫기 버튼을 없애기로 하였다.. 우선 기본적으로 셋팅을 하면 위의 사진처럼 최소, 최대, 닫기 버튼이 나온다. 이제 폼의 속성 창으로 이동해서 창 스타일에 가보면ControlBox 가 True로 되어 있는 것을 확인할 수 있다.이것이 최소,최대,닫기 버튼에 관한 속성이다. False로 바꾸어 주자. False로 바꾼 후 폼을 확인해 보면 이처럼 변한 것을 확인할 수 있다. 닫기 버튼이 없으므로 프로그램상..

programing/C# 2016.09.03

[C#]TextBox에 숫자만 입력받기

int 형 정수만 입력을 받아야 하는 일이 생겼다. 만약에 입력을 다 받은 후 검사를 하려면 소스코드가 엄청 길어질 것만 같아서 방법을 찾아 보았다. 역시나 방법은 있더라. 출처 : http://valkyurey.tistory.com/28 소스코드를 보면 private void txtInterval_KeyPress(object sender, KeyPressEventArgs e) { //숫자만 입력되도록 필터링 if(!(char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) //숫자와 백스페이스를 제외한 나머지를 바로 처리 { e.Handled = true; } } 예전 코드를 넣던 방식이 안되어서.. private void txtInter..

programing/C# 2016.08.30

[C#]Threading.Timer 생성자.. CallBack

Timer에 각각 다른 인자를 전달하여 생성을 하려고 하였다.그런데 CallBack만 사용해서는 인자 1개밖에 전달이 되지 않았다.방법을 찾던 중 MSDN에 생성자 관련 예제가 있어 확인해보니 Class를 생성하여 여러개의 인자를 전달하지 않고도 각각 다른 값을 가지고 Timer를 생성할 수 있었다. 출처 : https://msdn.microsoft.com/ko-kr/library/2x96zfy7(v=vs.110).aspx 기존 사용하던 소스 코드. System.Threading.Timer TimerTest; public MainForm(){InitializeComponent();TimerTest = new System.Threading.Timer(testProc, "test", 1000, 10000);..

programing/C# 2016.08.29