Feedback

C# - ScrollLabel - Ein Label horizontal über die Form scrollen

Veröffentlicht von am 28.10.2009
(2 Bewertungen)
Ein Label das horizontal über die Form scrollt.

Kann von rechts nach links (Standard), von links nach rechts oder hin und her (bounce) scrollen.

Außerdem kann rechts und links ein Offset angegeben werden.

Alles andere wie beim normalen System.Windows.Forms.Label.
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    static class EnumExtensions
    {

        /// <summary>
        /// Prüft, ein bestimmter Enum-Wert in einer Instanz einer Enum vorhanden ist
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="flags">System.Enum, Wert der Enum, der geprüft werden soll</param>
        /// <returns>System.Boolean</returns>
        public static System.Boolean Obtain(this System.Enum instance, System.Enum flags)
        {

            System.Int32 ls = 0;

            try
            {

                //prüfen
                if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(uint))
                {

                    ls = 10;
                    //Rückgabewert setzen
                    return (System.Convert.ToUInt32(instance) & System.Convert.ToUInt32(flags)) != 0;

                }
                else if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(int))
                {

                    ls = 20;
                    //Rückgabewert setzen
                    return (System.Convert.ToInt32(instance) & System.Convert.ToInt32(flags)) != 0;

                }
                else if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(byte))
                {

                    ls = 30;
                    //Rückgabewert setzen
                    return (System.Convert.ToByte(instance) & System.Convert.ToByte(flags)) != 0;

                }
                else if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(sbyte))
                {

                    ls = 40;
                    //Rückgabewert setzen
                    return (System.Convert.ToSByte(instance) & System.Convert.ToSByte(flags)) != 0;
                    
                }
                else if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(short))
                {

                    ls = 50;
                    //Rückgabewert setzen
                    return (System.Convert.ToInt16(instance) & System.Convert.ToInt16(flags)) != 0;

                }
                else if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(ushort))
                {

                    ls = 60;
                    //Rückgabewert setzen
                    return (System.Convert.ToUInt16(instance) & System.Convert.ToUInt16(flags)) != 0;

                }
                else if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(long))
                {

                    ls = 70;
                    //Rückgabewert setzen
                    return (System.Convert.ToInt64(instance) & System.Convert.ToInt64(flags)) != 0;

                }
                else if (System.Enum.GetUnderlyingType(instance.GetType()) == typeof(ulong))
                {

                    ls = 80;
                    //Rückgabewert setzen
                    return (System.Convert.ToUInt64(instance) & System.Convert.ToUInt64(flags)) != 0;

                }

                //Rückgabewert setzen
                return false;

            }
            catch (System.Exception ex)
            {

                //Fehler anzeigen
                System.Diagnostics.Debug.WriteLine(System.DateTime.Now.ToString() + " - System.Boolean Obtain(System.Enum, System.Enum) - " + ls.ToString() + " - " + ex.Message.ToString() + " - " + ex.StackTrace.ToString());

                //Rückgabewert setzen
                return false;

            }

        }


        /// <summary>
        /// Erstellt ein Array von System.Enum, das nur die Werte der Instanz enthält
        /// </summary>
        /// <param name="instance"></param>
        /// <returns>System.Enum[]</returns>
        public static System.Enum[] ContainedValues(this System.Enum instance)
        {

            System.Int32 ls = 0;
            
            try
            {

                //Type ermitteln
                System.Type et = instance.GetType();

                //Array von FieldInfo erstellen
                System.Reflection.FieldInfo[] fi = et.GetFields(System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);

                //Array von System.Enum erstellen => Rückgabewert
                //System.Enum[] values = new System.Enum[fi.Length];
                System.Collections.Generic.List<System.Enum> values = new List<System.Enum>();

                //alle Felder von instance durchlaufen
                for (int iEnum = 0; iEnum < fi.Length; iEnum++)
                {

                    //prüfen, ob der Wert vorhanden ist
                    if (instance.Obtain((System.Enum)fi[iEnum].GetValue(instance)) == true)
                    {
                        //values[index] = (System.Enum)fi[iEnum].GetValue(instance);
                        values.Add((System.Enum)fi[iEnum].GetValue(instance));
                       
                    }

                }


                //values.Count prüfen
                if (values.Count == 0)
                {

                    //0-Wert setzen
                    values.Add((System.Enum)System.Enum.Parse(et, "0", true));

                }

                //Rückgabewert setzen
                return values.ToArray();

            }
            catch (System.Exception ex)
            {

                //Fehler anzeigen
                System.Diagnostics.Debug.WriteLine(System.DateTime.Now.ToString() + " - System.Enum[] ContainedValues(System.Enum) - " + ls.ToString() + " - " + ex.Message.ToString() + " - " + ex.StackTrace.ToString());

                //Rückgabewert erstellen
                System.Enum[] retValue = new System.Enum[0];
                retValue[0] = (System.Enum)System.Enum.Parse(instance.GetType(), "0", true);

                //Rückgabewert setzen
                return retValue;

            }

        }

    }

}

Abgelegt unter scroll, scrollen, label, marquee.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!