1. 程式人生 > >C# (Winform) 顏色選擇器的呼叫,以及RGB顏色與UInt顏色的轉換

C# (Winform) 顏色選擇器的呼叫,以及RGB顏色與UInt顏色的轉換

廢話不多說,顏色選擇器就是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);