VB6での色番号フォーマットとC# (.net)での色番号フォーマット
従来のWindowsコントロールの”色”
Windows GDIにおいてはRGB色を指定するときCOLORREF値というDWORD型の値を設定します。
例えば、SetBkColor()やSetTextColor()関数などが挙げられます。
RGB = 0x00BBGGRR
.NET Frameworkの”色”
一方.NET Frameworkでは”色”を表すものとしてColor構造体があります。
これはRGB値ではなく、さらにアルファ値を加えたARGB値で色を表現します。
ARGB = 0xAARRGGBB
コントロールの色を扱うときの注意
http://www110.kir.jp/csharp/chip0211.html
変換関数
/// <summary> /// 色番号ARGBをRGB(VB用)に変換する /// AARRGGBB => 00BBGGRR /// </summary> /// <param name="rgbString">ARGB値(Hexで8桁)</param> /// <returns></returns> private string ARGB2RGB(string argbString) { string rgb = string.Empty; string AA = string.Empty; string RR = string.Empty; string GG = string.Empty; string BB = string.Empty; AA = argbString.Substring(0,2); RR = argbString.Substring(2,2); GG = argbString.Substring(4,2); BB = argbString.Substring(6,2); rgb = "00"+BB+GG+RR; return rgb; }
/// <summary> /// 色番号RGB(VB用)をARGBに変換する /// BBGGRR => ARGB /// </summary> /// <param name="rgbString">RGB値(Hexで8桁上位2桁は00)</param> /// <returns></returns> private string RGB2ARGB(string rgbString) { string argb = string.Empty; string AA = string.Empty; string RR = string.Empty; string GG = string.Empty; string BB = string.Empty; AA = rgbString.Substring(0, 2); BB = rgbString.Substring(2, 2); GG = rgbString.Substring(4, 2); RR = rgbString.Substring(6, 2); argb = "FF" + RR + GG + BB; return argb; }