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. 23. 19:09

+

2020.11.13

컨트롤 추가를 투명하게 하려는 컨트롤에 해주어야 한다.

그리고 좌표는 부모(?) 컨트롤에 상대적으로 적용된다.

 

pictureBox7.Controls.Add(pictureBox8); << 이 부분이 핵심이고

pictureBox8.Location = Point(0,0); << 이 부분이 두번째 핵심이다.

public Form1()
{
    InitializeComponent();
    pictureBox7.Controls.Add(pictureBox8);
    pictureBox8.Location = new Point(0, 0);
    pictureBox8.BackColor = Color.Transparent;
}

 

[링크 : https://stackoverflow.com/questions/19910172/how-to-make-picturebox-transparent]

---

 

[링크 : https://stackoverflow.com/questions/36099017/how-to-make-two-transparent-layer-with-c]

[링크 : https://stackoverflow.com/questions/12138892/picturebox-with-transparent-background]

[링크 : https://stackoverflow.com/questions/4144371/a-picturebox-problem]

 

[링크 : https://social.msdn.microsoft.com/Forums/windows/en-US/ce17105b-2ded-4649-a1b6-c83db4bcde8a/picturebox-transparency?forum=winforms]

[링크 : https://stackoverflow.com/questions/5522337/c-sharp-picturebox-transparent-background-doesnt-seem-to-work]

Posted by 구차니
Programming/c# & winform2020. 10. 23. 16:46

form2.Owner = this;

라고 부모에서 자신을 소유자로 등록하면

하위 폼인 form2 에서 ((Form1)(this.Owner)).parent_variable; 식으로 접근이 가능해진다.

다만 이벤트 핸들러 도 어떻게 영향을 받는지

 

alt-f4를 막아놨더니 부모도 창이 안 닫히는 문제가 발생했다.

 

 

[링크 : https://idgaf.tistory.com/3]

Posted by 구차니
Programming/c# & winform2020. 10. 23. 14:38

예전 MFC 보다 많이 편해진 느낌?

 

 

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}

[링크 : https://stackoverflow.com/questions/14943/how-to-disable-alt-f4-closing-form]

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

c# winform picturebox 끼리는 투명 적용 되지 않음  (0) 2020.10.23
자식에서 부모창의 자원 접근하기  (0) 2020.10.23
markdig custom markdown  (0) 2020.10.22
pdfsharp , migradoc  (0) 2020.10.22
itext7  (0) 2020.10.22
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' 카테고리의 다른 글

자식에서 부모창의 자원 접근하기  (0) 2020.10.23
c# winform 자식 다이얼로그에서 F4 막기  (0) 2020.10.23
pdfsharp , migradoc  (0) 2020.10.22
itext7  (0) 2020.10.22
c# pdf itextsharp -> itext7  (0) 2020.10.22
Posted by 구차니
Programming/c# & winform2020. 10. 22. 18:04

MIT license

[링크 : http://www.pdfsharp.net/Licensing.ashx]

 

 

다만 html 을 pdf로 변환하는 기능은 없다고 -_ㅠ

Can I use PDFsharp to convert HTML or RTF to PDF?¶
No, not "out of the box", and we do not plan to write such a converter in the near future.

Yes, PDFsharp with some extra code can do it. But we do not supply that extra code.
On NuGet and other sources you can find a third party library "HTML Renderer for PDF using PdfSharp" that converts HTML to PDF. And there may be other libraries for the same or similar purposes, too. Maybe they work for you, maybe they get you started.

[링크 : https://stackoverflow.com/questions/48759671/convert-html-string-to-pdf-with-migradoc]

 

+

HtmlRenderer.RdfSharp 라는게 가장 위에 나오는데

BSD 3 clause 라이센스..

[링크 : https://archive.codeplex.com/?p=htmlrenderer]

[링크 : https://github.com/ArthurHub/HTML-Renderer]

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

c# winform 자식 다이얼로그에서 F4 막기  (0) 2020.10.23
markdig custom markdown  (0) 2020.10.22
itext7  (0) 2020.10.22
c# pdf itextsharp -> itext7  (0) 2020.10.22
c# print 하기  (0) 2020.10.19
Posted by 구차니
Programming/c# & winform2020. 10. 22. 16:51

HtmlConverter.ConvertToPdf()

는 하나의 HTML을 pdf로 변환하고 close 하기 때문에

merger를 이용해서 합쳐야 하는 듯 하고

 

HtmlConverter.ConvertToDocument()

는 pdf로 변환하지만 ConvertToPdf()와는 다르게 div()를 정상적으로 처리하지 못한다.

 

[링크 : https://kb.itextpdf.com/home/it7kb/ebooks/itext-7-converting-html-to-pdf-with-pdfhtml/chapter-7-frequently-asked-questions-about-pdfhtml/how-to-parse-multiple-html-files-into-one-pdf] java

 

private void button2_Click(object sender, EventArgs e)
        {
            String DEST = "hello_world.pdf";

            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();

            PdfWriter writer = new PdfWriter(DEST);
            PdfDocument pdf = new PdfDocument(writer);
            Document document = new Document(pdf, PageSize.A4.Rotate());
            document.SetMargins(20, 20, 20, 20);
            PdfMerger pdfMerger = new PdfMerger(pdf);

            document.Add(new Paragraph("Hello World!"));

            String[] SRC = {
            @"d:\test1.html",
            @"d:\test2.html",
            @"d:\test3.html",
            @"d:\test4.html" };

            foreach (var html in SRC)
            {
                MemoryStream baos = new MemoryStream();
                PdfDocument temp = new PdfDocument(new PdfWriter(baos));
                temp.SetDefaultPageSize(PageSize.A4.Rotate());
                HtmlConverter.ConvertToPdf(System.IO.File.ReadAllText(html), temp, new ConverterProperties());
                ReaderProperties rp = new ReaderProperties();
                baos = new MemoryStream(baos.ToArray());
                temp = new PdfDocument(new PdfReader(baos, rp));
                pdfMerger.Merge(temp, 1, temp.GetNumberOfPages());
                temp.Close();
            }
            pdfMerger.Close();            
        }

[링크 : https://stackoverflow.com/questions/57415902/generate-one-pdf-document-with-multiple-pages-converting-from-html-using-itext-7] .net

 

pdf 특성상 붙이는 파일의 용지 방향을 지정해 주어야 한다.

[링크 : https://stackoverflow.com/questions/54347293/how-to-set-orientation-to-landscape-in-itext-7]

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

markdig custom markdown  (0) 2020.10.22
pdfsharp , migradoc  (0) 2020.10.22
c# pdf itextsharp -> itext7  (0) 2020.10.22
c# print 하기  (0) 2020.10.19
c# printer 사용하기 - printer enumeration  (0) 2020.10.19
Posted by 구차니