Click here to Skip to main content
15,886,873 members
Articles / Desktop Programming / Windows Forms

A Pretty Good Splash Screen in C#

Rate me:
Please Sign up or sign in to vote.
4.90/5 (309 votes)
28 Jun 2014CPOL13 min read 1.7M   57K   868  
A splash screen with some neat predictive progress bar features
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="UpdateTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="$this.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg
        JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy
        MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADcAaUDASIAAhEBAxEB/8QA
        HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
        MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
        V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
        x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
        BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
        YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
        hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
        8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDktPsBdzxRbgDIwXcegzXpVv8ACa2lhV21PBIBwFGK4HToiVUj
        gjnI7V1ltqupJEqCZiAMZzXvVVN25HY82Mop+8jW/wCFRWv/AEFD+QpP+FQ2v/QUP5CqY1XU/wDnq350
        n9q6n/z1b86wtX/mNOen2L3/AAqG1/6Ch/75FH/CobX/AKCh/wC+RVL+1tT/AOerfnR/a2p/89W/Oly1
        /wCYfPT7F3/hUNr/ANBQ/wDfIo/4VDa/9BQ/98iqX9ran/z1b86P7W1P/nq350ctf+YOen2Lv/CobX/o
        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
</value>
  </data>
</root>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Product Manager
United States United States
I've been programming in C, C++, Visual Basic and C# for over 35 years. I've worked at Sierra Systems, ViewStar, Mosaix, Lucent, Avaya, Avinon, Apptero, Serena and now Guidewire Software in various roles over my career.

Comments and Discussions