반응형

C# 53

[C#] Winform AutoScaleMode - 해상도, 폰트에 따른 레이아웃 변경되는 현상.

[C#] Winform AutoScaleMode - 해상도, 폰트에 따른 레이아웃 변경되는 현상. 개발 환경과 다른 환경에서 실행했을 경우, 폰트가 다르다던가 해상도가 다르다던가 하면 종종 윈폼이 찌그러지거나 뭐가 이상한 경우가 있다.이럴 땐 Form 속성중 AutoScaleMode를 None으로 바꿔주면 된다.난 분명히 Default가 Font인데 MSDN에는 Default가 None이라고 설명되어있다.닷넷 버전때문인가봉가 싶어서 다른버전을 클릭해도 링크되지 않는다. [출처 : MSDN] AutoScaleMode를 None으로 바꿔주면 잘 된다. [출처 : MSDN] Fin. 잘 못 된 정보가 있으면 말씀해주세요~ 1초도 걸리지 않는 공감버튼 클릭은 작성자에게 큰 힘이 됩니다.

C# 2016.02.01

[C#] combobox.selecteditem type to int32 (object to int) combobox.items type

[C#] combobox.selecteditem type to int32 (object to int) combobox.items type combobox의 selecteditem 의 type은 string이 boxing된 object type 이다. int가 boxing된 object type이라면 이렇게 써도 되겠지만, 그렇지 않으므로 컴파일시엔 에러가 안떠도 런타임시 이런 에러가 뜬다. 이렇게 string으로 unboxing한 후에 인트로 파싱해도 되고, Tostring메소드를 써서 string으로 변환 후 인트로 파싱해도 되고, Convert.ToInt32메소드를 써도 된다. Fin. 잘 못 된 정보가 있으면 말씀해주세요~ 1초도 걸리지 않는 공감버튼 클릭은 작성자에게 큰 힘이 됩니다.

C# 2016.01.29

[C#] serialport.readexisting() 데이터가 잘려 들어올 때(readline,BytesToRead,Truncated Data,received data is truncated)

[C#] serialport.readexisting() 데이터가 잘려 들어올 때(readline,BytesToRead,Truncated Data,received data is truncated) 하루 반나절을 삽질 했다.분명히 ReadExisting메소드를 써서 버퍼를 비우고 버퍼안의 바이트가 0되는 것도 확인했고 bytesToRead를 써서 들어오는 데이터가 32bytes인 것도 확인이 되었고, 혹시나해서 데이터 길이도 확인했는데텍스트박스에 계속 잘린데이터가 나오는 것이 아닌가. 들어오는 아스키값을 보니 저렇게 역슬러시가 중간에 떡하니 있는게 냄새가 났다.데이터 중간에 hex값 0x00 이 들어가서 ascii Null 값이 들어가니 Null뒤는 모두 생략돼버린다.들어오는 데이터도 정상이었고, 데이터를 ..

C# 2016.01.27

[C#] 시작폼 변경하기 Visual Studio Winform project, change main form

[C#] 시작폼 변경하기 Visual Studio Winform project, change main form Program.cs파일의 Main()함수가 해당 응용프로그램의 시작점인데 만약 Form1, Form2가 있고 Form1이 시작 폼인데 Form2를 시작폼으로 하고 싶다면그 안의 Application.Run의 매개변수를 Form2로 변경해주면 된다. Fin. 잘 못 된 정보가 있으면 말씀해주세요~ 1초도 걸리지 않는 공감버튼 클릭은 작성자에게 큰 힘이 됩니다.

C# 2016.01.27

[C#] Image 클래스(Image Class, System.Drawing.Image ) 사용법 예제

[C#] Image 클래스(Image Class, System.Drawing.Image ) 사용법 예제 Using을 하고, 요로케 사용하려고 했는데 안되네? 추상클래스였음. 이런식으로 사용 가능.절대경로를 쓰지 않는 이상 파일명.확장자명 으로 사용.기본경로는 해당프로젝트폴더 안의 bin\debug폴더 임. Fin. 잘 못 된 정보가 있으면 말씀해주세요~ 1초도 걸리지 않는 공감버튼 클릭은 작성자에게 큰 힘이 됩니다.

C# 2016.01.26

[C#] 일반화 컬렉션 (제네릭 컬렉션) 의 장점. List Queue Stack Dictionary. Generalization Collection.

[C#] 일반화 컬렉션 (제네릭 컬렉션) 의 장점. List Queue Stack Dictionary. Generalization Collection. [참고 msdn.microsoft.com] 제네릭이 아닌 ArrayList컬렉션 클래스를 사용하는 경우 참조나 값 형식을 저장하기 위해 수정하지 않고도 사용할 수 있음. 단점1. Object에 암시적으로 업캐스트되어 반복된 boxing, unboxing 으로 인한 성능저하. 단점2. 컴파일 타임에 형식을 검사할 수 없음. 런타임 이전에 발견할 수 없음. 코딩이 약간 더 복잡해진 대신 ArrayList보다 안전하면서도 속도가 훨씬 빠른 목록 만들기 가능. 컴파일시 에러 검출 가능. 이상으로 포스팅을 마칩니다. 감사합니다. Fin. 잘 못 된 정보가 있으면 ..

C# 2016.01.25

[C#] 크로스 스레드 작업이 잘못되었습니다.(InvalidOperationException)

크로스 스레드 호출 처리를 하지 않은 상태에서 그냥 실행을 시키면 뚜둥! 요로코롬 에러가 뜬다. 간단하게 생각해서 두 쓰레드가 충돌이 난다고 생각하면 된다. 이럴땐 이렇게 Invoke를 써서 크로스 스레드 호출 처리를 해주면 소스코드 Ctrl+C , Ctrl+V 1 2 3 4 5 6 7 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new Action(delegate () { listBox1.Items.Add(serialPort1.ReadExisting()); })); } Colored by Color Scripter cs 잘된다. 이상으로 포스팅을 마칩니다. 감사합니다. 잘 ..

C# 2016.01.20

[C#] Object to byte array 이틀 삽질.

MsComm을 통해 받은 Comm1.Input 의 Packet Data Type이 Object 이길래 난 Byte[] Type이 필요하므로 BinaryFormatter를 이용해 Serialize메서드를 써서 [- BinaryFormatter 참고링크 -] Byte[] Type으로 변환을 했건만. 날아온 패킷은 3 Byte인데 자꾸 변환한 데이터가 31 Byte 가 아닌가. 응? 금방 해결될 줄 알고 편한 마음으로 삽질을 하다가 1시간.. 2시간.. 반나절.. 하루.. 이틀을 삽질을 했다. C# 인데 MsComm 을 쓰는 이유는VB6 소스를 C#으로 컨버팅 하는 작업을 하고 있었기 때문인데이 허접한 이틀의 삽질 끝에 그냥 SerialPort를 쓰는 게 무지막지하게 간단한 방법이란 걸 깨달았다. Fin. 잘..

C# 2016.01.19
반응형