文章分類/

Infragistics|Ultimate UI for Windows Forms|我想使用 Shift JIS 位元組數來設定 UltraGrid 儲存格中的字元數。

1 次瀏覽
2023-11-05 更新

infragistics log

【概述】 我想根據 Shift JIS 中的位元組長度來設定 UltraGrid 儲存格中輸入字元數的上限。

[適用元件] 超網格 【適用版本】 所有版本 [文章類型] 常問問題 【細節】

NetAdvantage 沒有內建功能來限製位元組長度的字元數。對於UltraGrid,可以透過處理CellChange事件、轉換字串並在字串變更時編輯位元組長度來實現類似的處理。

(C# 範例)

        /// 
        /// バイト数判定に用いるShiftJis用Encoding
        /// 
        public Encoding ShiftJisEncoding
        {
            get
            {
                return Encoding.GetEncoding("shift-jis");
            }
        }
 
        private void ultraGrid1_CellChange(object sender, CellEventArgs e)
        {
            //Text列のときのみ処理を行います
            if (e.Cell.Column.Key == "Text")
            {
                //バイト長
                int length = (int)e.Cell.Row.Cells["Length"].Value;
 
                //ShiftJisでのバイト配列を取得します
                byte[] bs = ShiftJisEncoding.GetBytes(e.Cell.Text);
               
                //指定の長さよりもバイト長が長い場合
                if (bs.Length > length)
                {
                    //最後の文字が漢字の上位バイトであれば、無視します
                    byte last = bs[length - 1];
                    if ((last >= 0x81 && last <= 0x9f) || (last >= 0xe0 && last <= 0xfc))
                    {
                        length -= 1;
                    }
                   
                    e.Cell.Value = ShiftJisEncoding.GetString(bs, 0, length);
                    //カーソルの位置が最後にくるように調整します
                    e.Cell.SelStart = e.Cell.Text.Length;
                   
                }
            }
           
        }

快速跳轉目錄

✦ 群昱 AccessSoft 你的全面軟體解決方案 ✦

身為全球眾多知名軟體在台灣合作夥伴,歡迎諮詢你需要的軟體服務!

Picture of 軟體專家
軟體專家

群昱作為全球知名軟體推薦合作夥伴,致力於提供更多軟體解決方案給你!

更多軟體新知

立即詢價

請留下完整資訊,以便我們提供精確的服務內容給你。

詢價資訊