WinForms a panel s double-bufferingem

Potřebujeme-li ve WinForms vícenásobně překreslovat panel, setkáme se s největší pravděpodobností s blikáním našeho kresleného obrazu. Je to způsobeno tím, že obraz se vykresluje postupně a navíc relativně pomalu. Abychom se tomu vyhnuli musíme použít double buffering.

Vydědíme si tedy z panelu novou třídu, která bude mít double buffering aktivovaný a budeme ji používat namísto původního panelu.

C#:
public class DoubleBufferedPanel : Panel
{
    public DoubleBufferedPanel()
    {
        this.DoubleBuffered = true;
        this.SetStyle(ControlStyles.DoubleBuffer |
          ControlStyles.UserPaint |
          ControlStyles.AllPaintingInWmPaint, true);
        this.UpdateStyles();
    }
}

WinForms a červené X vykreslené na panelu

Pokud jste se někdy pokoušeli kreslit ve WinForms na panel (konkrétně v obsluze události Paint panelu) a dostali jste místo svého výtvoru pouze červený rámeček s krásným červeným X, pak věřte, že váš kód vyprodukoval vyjímku dříve než stačil něco nakreslit. Pokud se zobrazila pouze polovina vašeho výtvarného díla, pak to může být tím, že váš kód vyprodukoval vyjímku až v polovině kreslení. Inu zajímavý způsob jak informovat o problému. Příště si vůj kód budu raději lépe hlídat sám.

Rozdíly mezi událostmi a delegáty

Nebudu psát o tom co jsou to delegáti a události v C#, ale shrnu jejich podobné a rozdílné rysy.

Kus zdrojového kódu bude výřečnější než já :)
Čti dále

Editace záznamů pomocí SQL Server Management Studia

O funkcích SQL Server Management Studia jsem zde psal už několikrát. Pokud dojde na editaci záznamů v tabulkách, tak místo sepisování UPDATE dotazu, sáhnu po možnosti 'Edit Top 200 Rows' v kontextové nabídce tabulky.
Pokud jde o editaci jednoho záznamu, nejspíše bude tento postup zdlouhavější, ovšem zpravidla u jednoho záznamu nezůstane. Problém přichází, když tabulka obsahuje více než 200 záznamů a ten, který chci editovat není mezi prvními dvěma sty. Čti dále

Formátování řádků GridView v závislosti na obsahu

Komponenta GridView nabízí ideální způsob, jak rychle a bez práce prezentovat množinu dat. Možnosti formátování jsou opravdu široké, avšak vztahují se na celou komponentu, či její části. Pokud chceme upravit vzhled jednotlivých řádků ( a to v závislosti na jejich obsahu ), musíme sáhnout po události RowDataBound. Ta je vyvolána při zpracování každého záznamu v datovém zdroji.
Čti dále

Jak v T-SQL pracovat s velkými texty

Pokud potřebujete do databáze uložit rozsáhlý text, nejspíše použijete datový typ text, který je schopen pojmout až 2GB textových dat. Pokud budete chtít s velkými texty pracovat pomocí T-SQL, nejspíše také sáhnete po datovém typu text. Ten však nelze použít jako datový typ proměnné:

The text, ntext, and image data types are invalid for local variables.

Čti dále

Šifrování ConnectionString v ASP.NET podruhé

Před časem jsem zde psal o šifrování connectionStringu pomocí aspnet_regiis.exe. Nyní jsem nabyl dojmu, že budu muset použít šifrování programové, tak jsem si ho vyzkoušel.

Vzhledem k tomu, že mám vytvořený příklad na úpravu souboru web.config, rozhodl jsem se doplnit ho o dvě tlačítka. Jedno pro zašifrování a druhé pro dešifrování sekce connectionStrings. Potřebný kód je ještě jednodušší než u zmíněné úpravy sekce v web.config.
Čti dále

Jak programově upravit soubor web.config

Občas se hodí, přímo z webové aplikace upravit obsah konfiguračního souboru. V mém případě jde o sekci connectionStrings a tak uvedu příklad na ní. Upravovat však jdou i další sekce. Třídy pro práci se souborem web.config poskytují jmenné prostory System.Configuration a System.Web.Configuration.

Samotný příklad se skládá z jednoduchého formuláře, který obsahuje vstupní pole pro zadání loginu a hesla. Dále tlačítko na vytvoření nového connectionStringu a tlačítko na jeho smazání. Samotný formulář si snadno vytvoříte v Design módu pomocí komponent z ToolBoxu. Ta důležitější část je ve zdrojovém kódu stránky, tedy obsluha jednotlivých tlačítek.
Čti dále

Zvýšení bezpečnosti MS SQL Serveru pomocí koncových bodů

Na koncové body (endpoints) jde nahlížet jako na místa, kterými se lze připojit k SQL Serveru. Lze tak určit kdo a jak se k SQL Serveru smí připojit. Problematika koncových bodů je celkem široká a tak se zaměřím jen na konkrétní část. Tou bude protokol TCP/IP a T-SQL jako typ dat, očekávaný koncovým bodem. Čti dále

Porovnání záznamů v MySQL tabulce s daty v souboru

Napsal jsem si skriptík, který z textového souboru načítá jednotlivé řádky a následně je zpracuje a uloží do databáze. Vše by bylo pěkné, kdyby v onom skriptu nebyla chyba, kvůli které nebyly některé řádky zpracované. Vzhledem k tomu, že zpracovávání všech údajů zabralo pár hodin, tak opětovné spuštění skriptu na všechna data nepřipadalo v úvahu. Bylo třeba zjistit, které záznamy byly zpracovány a které ne. Po chvilce hledání jsem usoudil, že jedním (byť složeným) dotazem to nezjistím. Byly potřeba tři.
Čti dále

Návrat nahoru
Ploty, pletiva a oplocení od světového výrobce plotů, Tvorba webových stránek, Moderní zdravotní matrace, které pomáhají od bolesti - matrace UNAR, Oblékáme se stylově - oblečení a hip hop oblečení, Nábytek, židle a nábytkové doplňky na lino.cz