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 구차니

댓글을 달아 주세요

Programming/c# & winform2020. 10. 29. 16:34

불가능 하진 않은 것 같은데.. 많이는 안쓰는 기능인지 잘 없네

하긴 나라도 IE 기반으로 먼가 프로그램을 동적으로 주고 받으면서 하라고 하진 않을 듯..

 

 

[링크 : https://stackoverflow.com/questions/12950413/accessing-dom-from-webbrowser]

[링크 : https://stackoverflow.com/questions/42495828/access-the-dom-using-webbrowser/42701789]

[링크 : https://docs.microsoft.com/.../how-to-access-the-managed-html-document-object-model...]

 

[링크 : https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.htmldocument?view=netcore-3.1]

Posted by 구차니

댓글을 달아 주세요

Programming/c# & winform2020. 10. 26. 14:40

Screen.AllScreens.OrderBy() 를 통해

WorkingArea.X 값을 정렬하면 되긴 한데..

Screen[0] 으로 접근 가능한 순서가 아니게 되니 어떻게 해야 하려나..

 

원론적으로는

Screen.AllScreen[0].DeviceName 에 접근해서 다 잘라내고 숫자만 빼내 -1을 해주면 될 것 같긴한데..

 

일단 현재 모니터 순서

Screen.AllScreens 에서는 아래의 순서로 출력된다.

0 - 가장 오른쪽 (1920,0)

1 - 가장 왼쪽 (-1920,0)

2 - 중앙 (0,0)

 

private void Form1_Load ( object sender, EventArgs e )
{
    var parent = new FlowLayoutPanel() { Dock = DockStyle.Fill };            
    Controls.Add(parent);

    //Order by how they are laid out to the user
    var screens = Screen.AllScreens.OrderBy(s => s.WorkingArea.X).ToArray();

    foreach (var screen in screens)
    {
        var panel = new Panel() { Width = screen.Bounds.Width / 10, Height = screen.Bounds.Height / 10 };
        panel.BackColor = screen.Primary ? Color.Blue : Color.Silver;
                                
        panel.Controls.Add(new Label() { Text = screen.DeviceName });

        parent.Controls.Add(panel);
    };
}

[링크 : https://social.msdn.microsoft.com/Forums/en-US/048586a5-e04b-40d8-a2d6-4c903fbf9b1b/...]

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

Posted by 구차니

댓글을 달아 주세요

Programming/c# & winform2020. 10. 26. 12:38

핵심(?)은 this.Controls.Add(ctrl);

 

[링크 : http://csharp.net-informations.com/gui/dynamic-controls-cs.htm]

[링크 : https://docs.microsoft.com/ko-kr/troubleshoot/dotnet/csharp/add-controls-to-windows-forms]

Posted by 구차니

댓글을 달아 주세요

Programming/c# & winform2020. 10. 22. 18:24

돌려는 봤는데 어렵네 ㅠㅠ

어떻게 파서를 짜야하려나?

 

[링크 : https://www.cyotek.com/blog/writing-custom-markdig-extensions]

  [링크 : https://www.cyotek.com/downloads/view/MarkdigMantisLink.zip/]

 

[링크 : https://odetocode.com/blogs/scott/archive/2020/01/23/a-custom-renderer-extension-for-markdig.aspx]

 

+ 2020.10.29

원래 구현하고자 하는 것은

[ ]

[x]

을 받으면 HTML의 input type=checkbox 로 변환하는 건데

MantisLink 예제를 따라해보니 [는 걸려지지 않는다.

아무래도 링크로 연관되어 [는 이미 처리되어버리기 때문에 걸러내질 못하는 듯..

 

그러면 github 등에서 어떻게 구현을 해서 쓰고 있는걸까?

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

c# 멀티 모티터 사용 시 스크린의 순서  (0) 2020.10.26
C# form 동적 컨트롤 생성  (0) 2020.10.26
markdig custom markdown  (0) 2020.10.22
c# print 하기  (0) 2020.10.19
c# printer 사용하기 - printer enumeration  (0) 2020.10.19
c# dialog dual screen  (0) 2020.10.15
Posted by 구차니

댓글을 달아 주세요

Programming/c# & winform2020. 10. 19. 14:02

 

[링크 : https://stackoverflow.com/questions/6103705/]

[링크 : https://www.nuget.org/packages/PdfiumViewer/] apache 2.0 license

[링크 : https://www.nuget.org/packages/PdfiumViewer.Native.x86_64.v8-xfa/] apache 2.0 license

 

+

[링크 : https://stackoverflow.com/questions/48740924]

 

[링크 : https://stackoverflow.com/questions/57415902]

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

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

    [링크 : www.dynamicpdf.com/Merge-PDF-.NET.aspx]

  [링크 : https://www.codeproject.com/Articles/28283/Simple-NET-PDF-Merger] ??

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

C# form 동적 컨트롤 생성  (0) 2020.10.26
markdig custom markdown  (0) 2020.10.22
c# print 하기  (0) 2020.10.19
c# printer 사용하기 - printer enumeration  (0) 2020.10.19
c# dialog dual screen  (0) 2020.10.15
c# dialog 전체화면  (0) 2020.10.15
Posted by 구차니

댓글을 달아 주세요

Programming/c# & winform2020. 10. 19. 12:36

일단은 프린터 나열부터 시작

        private void button1_Click(object sender, EventArgs e)
        {
            PrintQueue printQueue = null;
            LocalPrintServer localPrintServer = new LocalPrintServer();
            PrintQueueCollection localPrinterCollection = localPrintServer.GetPrintQueues();

            //Console.WriteLine("These are your shared, local print queues:\n\n");

            foreach (PrintQueue printer in localPrinterCollection)
            {
                //Console.WriteLine("\tThe shared printer " + printer.Name + " is located at " + printer.Location + "\n");
                textBox1.Text += printer.Name + "@" + printer.Location + "\r\n";
            }
            //Console.WriteLine("Press enter to continue.");
            //Console.ReadLine();
            //System.Collections.IEnumerator localPrinterEnumerator = localPrinterCollection.GetEnumerator();

        }

 

[링크 : https://docs.microsoft.com/ko-kr/dotnet/desktop/wpf/advanced/how-to-enumerate-a-subset-of-print-queues?view=netframeworkdesktop-4.8]

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

markdig custom markdown  (0) 2020.10.22
c# print 하기  (0) 2020.10.19
c# printer 사용하기 - printer enumeration  (0) 2020.10.19
c# dialog dual screen  (0) 2020.10.15
c# dialog 전체화면  (0) 2020.10.15
c# winform / 버튼클릭 이벤트 호출하기  (2) 2020.10.15
Posted by 구차니

댓글을 달아 주세요