Programming/c# & winform2020. 11. 5. 17:46

환경 설정파일로 ini 만한게 없긴하지..

 

[링크 : https://www.nuget.org/packages/ini-parser/]

[링크 : https://wookoa.tistory.com/417]

[링크 : https://github.com/Enichan/Ini]

 

'Programming > c# & winform' 카테고리의 다른 글

C# 시간 관련 클래스  (0) 2020.11.10
c# 문자열을 시간으로  (6) 2020.11.06
C# UTC -> 지역시간  (0) 2020.11.05
c# gps(nmea parser)  (0) 2020.11.05
c# label rotate  (0) 2020.11.04
Posted by 구차니
Programming/c# & winform2020. 11. 5. 15:39

위는 결과는 UTC 시간을 출력해주고

아래 결과는 지역시간(한국이니 UTC+9 = KST)으로 출력된다

label2.Text = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString();
label2.Text = DateTime.Now.ToString();

 

GPS 에서 사용하는 스타일로 UTC를 출력하기

DateTime utc = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now);
label2.Text = "" + String.Format("{0:D2}", utc.Year % 100) + String.Format("{0:D2}", utc.Month) + String.Format("{0:D2}", utc.Day);
label2.Text += " " + String.Format("{0:D2}", utc.Hour) + String.Format("{0:D2}", utc.Minute) + String.Format("{0:D2}", utc.Second);

[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.datetime.tolocaltime?view=netcore-3.1]

[링크 : https://docs.microsoft.com/ko-kr/dotnet/standard/datetime/converting-between-time-zones]

 

+

2020.11.06

 

utc를 저장하고 ToLocalTime() 한번 실행해주면 지역시간으로 바뀐다.

public DateTime ToLocalTime ();

[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.datetime.tolocaltime?view=netcore-3.1]

'Programming > c# & winform' 카테고리의 다른 글

c# 문자열을 시간으로  (6) 2020.11.06
c#에서 ini 파일 사용하기  (0) 2020.11.05
c# gps(nmea parser)  (0) 2020.11.05
c# label rotate  (0) 2020.11.04
c# tooltip  (0) 2020.11.04
Posted by 구차니
Programming/c# & winform2020. 11. 5. 15:00

내가 필요한건 NMEA 값을 받아와서 파싱하고

그 값을 내가 원하는대로 수정해서 원래 GPS 데이터로 출력하는 건데..

 

괜찬아 보이는데 쓰기 쉬울려나?

 

 

Features
  • Most common NMEA messages fully supported
    • GNSS: BOD, GGA, GLL, GNS, GSA, GST, GSV, RMB, RMA, RMB, RMC, RTE, VTG, ZDA
    • Garmin Proprietary: PGRME, PGRMZ
    • Trimble Laser Range Finder: PTNLA, PTNLB
    • TruePulse Laser Range Finder: PLTIT
  • Automatic merging of multi-sentence messages for simplified usage.
  • Extensible with custom NMEA messages see here
  • Multiple input devices out of the box
    • System.IO.Stream (all platforms)
    • Emulation from NMEA log file (all platforms)
    • Serial Device: .NET Framework, .NET Core (Windows, Linux, Mac) and Windows Universal.
    • Bluetooth: Windows Universal and Android. .NET Core/.NET Framework is supported using the bluetooth device via the SerialPortDevice.

[링크 : https://www.nuget.org/packages/SharpGIS.NmeaParser/]

[링크 : https://dotmorten.github.io/NmeaParser/api/index.html]

'Programming > c# & winform' 카테고리의 다른 글

c#에서 ini 파일 사용하기  (0) 2020.11.05
C# UTC -> 지역시간  (0) 2020.11.05
c# label rotate  (0) 2020.11.04
c# tooltip  (0) 2020.11.04
c# GIF picturebox  (4) 2020.11.04
Posted by 구차니
Programming/c# & winform2020. 11. 4. 20:42

일일이 돌리려면 죽어 나겠는데 편하게 돌리는 법 없나?

 

[링크 : https://www.codeproject.com/Questions/1103814/How-to-rotate-a-label-by-keeping-autosize-in-Cshar]

[링크 : https://www.c-sharpcorner.com/forums/rotate-a-lable-in-c-sharp]

 

 

+ 2020.11.05

문자열이 얼마나 크게 그려지는지 pixel 단위로 돌려받는 함수.

[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.drawing.graphics.measurestring?view=dotnet-plat-ext-3.1]

 

+ 2020.11.05

4분면 마다 다르게 설정해야 하는데 sin/cos 다시 공부하게 생겼다.. ㅠㅠ

아무튼 해당 코드 정상적으로 잘 작동하는 것 확인!

[링크 : https://stackoverflow.com/questions/1371943/c-sharp-vertical-label-in-a-windows-forms]

'Programming > c# & winform' 카테고리의 다른 글

C# UTC -> 지역시간  (0) 2020.11.05
c# gps(nmea parser)  (0) 2020.11.05
c# tooltip  (0) 2020.11.04
c# GIF picturebox  (4) 2020.11.04
C# 큰 이미지를 일부만 그리고 드래그 지원하기  (2) 2020.10.30
Posted by 구차니
Programming/c# & winform2020. 11. 4. 18:16

ToolTip.IsBalloon = true;

 

ToolTip.IsBalloon = false;

 

[링크 : https://stackoverflow.com/questions/9776077/how-can-i-add-a-hint-or-tooltip-to-a-label-in-c-sharp-winforms]

[링크 : http://www.gisdeveloper.co.kr/?p=2244]

Posted by 구차니
Programming/c# & winform2020. 11. 4. 17:51

ImageAnimator 클래스를 이용해서 비트맵과 프레임변경 핸들러를 추가하면

ImageAnimator.UpdateFrames()를 통해 다음 프레임을 원하는대로 그리는 듯

투명도 되려나?

 

using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace BackgroundWorkerTest
{
    public partial class SandGlass : Form
    {
        public SandGlass()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
        }
 
        Bitmap bit;
        protected override void OnLoad(EventArgs e)
        {
            bit = new Bitmap("sandglass.gif");
            ImageAnimator.Animate(bit, new EventHandler(this.OnFrameChanged));
            base.OnLoad(e);
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            ImageAnimator.UpdateFrames();
            Graphics g = pictureBox1.CreateGraphics();
            g.DrawImage(this.bit, new Point(0, 0));
            base.OnPaint(e);
        }
        private void OnFrameChanged(object sender, EventArgs e)
        {
            this.Invalidate();
        }
    }
}

[링크 : https://blog.naver.com/goldrushing/130184365511]

[링크 : https://docs.microsoft.com/en-us/dotnet/api/system.drawing.imageanimator.animate?view=dotnet-plat-ext-3.1]

Posted by 구차니
Programming/c# & winform2020. 10. 30. 15:21

말이 이상하네 -ㅁ-

원본 이미지는 큰데 출력할 PictureBox는 작고

그 PictureBox 위에서 클릭 드래그 하면 사진이 움직이는 것을 구현하려고 한참을 고생했는데

결과물은 딸랑 두줄 -_-

 

        private void OnMouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button.HasFlag(MouseButtons.Left))
            {
                Bitmap bmp = global::testproject.Properties.Resources.septa_map;
                pictureBox2.CreateGraphics().DrawImage(bmp, new Point(e.X, e.Y));
            }
        }

[링크 : https://www.c-sharpcorner.com/.../how-to-make-image-editor-tool-in-C-Sharp-cropping-image/]

[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.mousebuttons?view=netcore-3.1]

 

 

+

중간에 아무생각 없이 new Bitmap 엄청했더니 OutOfMemory 에러를 보지 않나 난리 법석이었네

Posted by 구차니
Programming/c# & winform2020. 10. 30. 12:26

접근제한자를 아무생각없이 써서 발생한 문제 -_ㅠ

 

"일관성 없는 접근성: ‘type’ 매개 변수 형식이 ‘method’ 메서드보다 접근성이 부족합니다."

내용대로 매개변수의 접근성이 method의 접근성보다 낮을 경우 발생한다.

 

 

그러니까

메소드는 public 인데

인자는 private 형일때 발생했다.

 

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/compiler-messages/cs0051]

Posted by 구차니
Programming/c# & winform2020. 10. 30. 12:09

특이하게도.. 색상 지정할때는 값을 주면 되는데

기본 색상으로 하려면 new를 해주어야 한다.

 

if (lblExample.ForeColor != System.Drawing.Color.Red)
{
    lblExample.ForeColor = System.Drawing.Color.Red;
}
else
{
    lblExample.ForeColor = new System.Drawing.Color();
}

[링크 : https://stackoverflow.com/.../how-to-programmatically-set-the-forecolor-of-a-label-to-its-default]

Posted by 구차니
Programming/c# & winform2020. 10. 30. 11:47

어떻게 여러개의 값을 넣을 방법이 있을 것 같아서 찾아보는데

"항목 편집" 을 누르면 "문자열 컬렉션 편집기" 라는게 뜨고

엔터로 구분해서 입력해 주면 자동으로 Item에 추가된다.

Items나 Text에 해주어야 하는줄 알았는데 그냥 "항목 편집"을 누르면 된다.

 

반대로 다국어 지원시 문자열을 넣는걸 찾아봐야겠네..

 

 

            // 
            // comboBox_direction
            // 
            this.comboBox_direction.FormattingEnabled = true;
            this.comboBox_direction.Items.AddRange(new object[] {
            "Forward",
            "Backward",
            "Neutral"});
            this.comboBox_direction.Location = new System.Drawing.Point(65, 220);
            this.comboBox_direction.Name = "comboBox_direction";
            this.comboBox_direction.Size = new System.Drawing.Size(121, 20);
            this.comboBox_direction.TabIndex = 4;

 

 

[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.combobox?view=netcore-3.1]

Posted by 구차니