C# (Winform) 顏色選擇器的呼叫,以及RGB顏色與UInt顏色的轉換
阿新 • • 發佈:2019-01-27
廢話不多說,顏色選擇器就是ColorDialog,直接從工具欄拖到窗體上。
呼叫顏色選擇器和呼叫窗體一樣,我這裡通過一個Button的點選事件觸發,選擇顏色後改變了panel的顏色:
ColorDialog colorDia = new ColorDialog();
if (colorDia.ShowDialog() == DialogResult.OK)
{
//獲取所選擇的顏色
Color colorChoosed = colorDia.Color;
//改變panel的背景色
flowLayoutPanel1.BackColor = colorChoosed;
}
這個功能很容易實現吧。
但是在上位機程式編寫過程中有的空間的屬性設定可能不接受RGB顏色,需要轉換成int型,那麼可以通過以下程式碼實現:
RGB顏色轉成UInt(colorChoosed 表示RGB形式的顏色)
int r = colorChoosed.R;
int g = colorChoosed.G;
int b = colorChoosed.B;
UInt32 colorConverted = (uint )(((uint)b << 16) | (ushort)(((ushort)g << 8) | r));
UInt轉成RGB顏色(colorChoosed 表示UInt形式的顏色)
int R = 0xFF & colorChoosed ;
int G = 0xFF00 & colorChoosed ;
G >>= 8;
int B = 0xFF0000 & colorChoosed ;
B >>= 16 ;
Color colorConverted = Color.FromArgb(R, G, B);