IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

6. diel - Tlač formuláre a ovládacích prvkov Windows Forms

Blížime sa k záveru našej ukážky, doplníme MyClass2 funkcií KresliLine.

//MyClass2.cpp
void Kreslivbshape::KresliLine(Graphics^ gr, int xx , int yy , int count)
{
        int x1,x2,y1,y2 = 0;
        LineShape ^mlineShape = nullptr;
    for (int i = 0; i < count; i++)
    {
             mlineShape = lineShape[i];
         x1 = mlineShape->X1 + xx;
         x2 = mlineShape->X2 + xx;
         y1 = mlineShape->Y1 + yy;
         y2 = mlineShape->Y2 + yy;
             gr->Clip = gcnew Region(recMax);
             Pen^ pen = gcnew Pen(mlineShape->BorderColor,(float) mlineShape->BorderWidth);
         pen->DashStyle = mlineShape->BorderStyle;
         gr->DrawLine(pen, x1, y1, x2, y2);
         delete pen;
             gr->ResetClip();
    }
        lineShape->Clear();
        mlineShape = nullptr;
    };//Kresli lineShape

Pre poriadok musíme napísať prázdne funkcie pre OvalShape a RectangleShape. Kód v týchto funkciách nie je
predmetom tejto ukážky.

//MyClass2.cpp
void Kreslivbshape::KresliOval(Graphics^ graphics,int xx , int yy, int count)
{
        //není v této ukázce
    //.......nějaký kód
};


void Kreslivbshape::KresliRectangle(Graphics^ graphics, int xx , int yy ,int count)
{
        //není v této ukázce
    //......nějaký kód
};

Testovanie nášho výtvoru

Nakoniec nám zostáva otestovanie nášho programu. Prejdeme vo VS do správcu konfigurácie a nastavíme aktívnu konfiguráciu na Release u FormPrintDemo.exe, MyClass1.dll a MyClass2.dll.

Po zostavení sa v okne výstupu objavia:

Sestavení bylo úspěšně dokončeno.
Nové sestavení všeho: 3 úspěšně, 0 se nezdařilo, 0 přeskočeno

Doplníme AssemblyInfo.css o názov a ostatné assembly, to isté urobíme pre MyClass1 assemblyInfo.cs. Do triedy MyClass2.dll pridáme Assembly Resource File (.resx) s Názov MyClass2. V prieskumníkovi riešení v sekcii Source Files (MyClass2) je nový súbor AssemblyInfo.cpp, ktorý doplníme ako predošlé dva súbory
assemblyInfo.cs. Znovu vykonáme zostavenie a otestujeme, či sme neurobili nejakú chybu.

Microsoft FxCop 10.0

Tento nástroj nám vykonáva statickú analýzu kódu. Poskytuje stovky pravidiel, ktoré vykonávajú rôzne typy analýz. Vo vyšších verziách VS je priamo súčasťou VS. Môžeme si tento nástroj nainštalovať z Microsoft windows SDK

Inštaláciu FxCopu vykonáme podľa pokynov na inštaláciu. Odporúčam tento nástroj používať. Ak načítame naše súbory (FormPrintDemo.exe, MyClass1.dll a MyClass2.dll) do FxCopu (viď obrázok), neprestaneme sa čudovať.

FxCop 1 - Okenné aplikácie v C # .NET vo Windows Forms
FxCop 2 - Okenné aplikácie v C # .NET vo Windows Forms

Opravíme červeno zafarbené chybové hlášky mimo:

  • Assemblies should have valid strong names, myclass1.dll
  • Assemblies should have valid strong names, myclass2.dll
  • Assemblies should have valid strong names, FormPrintDemo.exe

Tu odporúčam sa riadiť sedliackym rozumom pre žlté odporúčania. Nakoniec podpíšeme zostavenie vygenerovaným silným menom pomocou utility sn.exe. Po podpísaní jednotlivých tried budú uvedené 3 chybové položky zlikvidované.

Vytvoríme inštalačné súbory a máme hotovo.

Záver

V tomto tutoriále som sa pokúsil ukázať ako tlačiť pod .NET. Neviem, či sa mi to podarilo, ťažko sa píše pre poslucháčov, kde nepoznáte šírku ich vedomostí.

výstup tlače - Okenné aplikácie v C # .NET vo Windows Forms

Niekoľko funkcií navyše

Ak vytvárate Demo verziu, môžete vykresľovať na formulár alebo užívateľské prvky rôzny farebný text.

#if(DEBUG == true)

/// <summary>
/// Při demoverzi píše text pro tisk na formulář
/// </summary>
internal class DemoVerze
{
    private List<Color> color = new List<Color>(11) ;

    internal DemoVerze()
    {
        color.Add(Color.Azure);
        color.Add(Color.LightCyan);
        color.Add(Color.Violet);
        color.Add(Color.LightGray);
        color.Add(Color.LightGreen);
        color.Add(Color.LightPink);
        color.Add(Color.LightSalmon);
        color.Add(Color.LightYellow);
        color.Add(Color.LightSteelBlue);
        color.Add(Color.LightGoldenrodYellow);
    }

    internal void DrawRectanglesForm(Control controls, Graphics g)
    {
        Point pp = new Point(0, 0);
        List<Point> point = new List<Point>(8) { pp, pp, pp, pp,pp,pp,pp,pp };
        point[0] = new Point(230, 230);
        point[1] = new Point(600, 230);
        point[2] = new Point(230, 600);
        point[3] = new Point(600, 600);
        point[4] = new Point(970, 230);
        point[5] = new Point(970, 600);
        point[6] = new Point(230, 940);
        point[7] = new Point(600, 940);

        // Vytvoření per, štětců a písem pro kresbu
        using (Font captionFont = new Font("Arial", 26))
        {
            // Nastavení matice tak, aby se následující
            // kresby objevily ve středu PictureBoxu
            g.Clip = new Region(RealPageSettingsBounds);

            for (int j = 0; j < 8; j++)
            {
                g.TranslateTransform(point[j].X, point[j].Y, MatrixOrder.Prepend);
                // Režim vyhlazování nastavíme na HighQuality,
                // aby se nakreslily čisté linie
                g.SmoothingMode = SmoothingMode.HighQuality;
                // Nakreslení 10 obdélníků s nápisem a
                // pokaždé otočíme matici o 36 stupňů
                for (int i = 0; i < 10; i++)
                {
                    using (Brush blackBrush = new SolidBrush(color[i]))
                    {
                        g.RotateTransform(36, MatrixOrder.Prepend);
                        g.DrawString("    Demo ", captionFont, blackBrush, 25, 25);
                    }
                }
                g.ResetTransform();
            }
            // Vrátíme transformaci do původního stavu
            g.ResetClip();
            g.SmoothingMode = SmoothingMode.Default;
        }
    }
#endif
demo ukážka - Okenné aplikácie v C # .NET vo Windows Forms

Dôležité

Ak používate VS 2013, je potrebné doinštalovať VB-PoverPack a dorobiť referencie na toto assemblies.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 139x (5.66 MB)
Aplikácia je vrátane zdrojových kódov v jazyku C#

 

Všetky články v sekcii
Okenné aplikácie v C # .NET vo Windows Forms
Článok pre vás napísal zpavlu
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
C# , C++ a assembler
Aktivity