zoukankan      html  css  js  c++  java
  • WPF,ComboBox,取汉字首字母,extBoxBase.TextChanged

    1取汉字汉语拼音首字母:

    private static string GetFirstLetterOfChineseString(string CnChar)
    {
    long iCnChar;
    byte[] ZW = System.Text.Encoding.Default.GetBytes(CnChar);

    //如果是字母,则直接返回
    if (ZW.Length == 1)
    {
    return CnChar.ToUpper();
    }
    else
    {
    int i1 = (short)(ZW[0]);
    int i2 = (short)(ZW[1]);
    iCnChar = i1 * 256 + i2;
    }
    if ((iCnChar >= 45217) && (iCnChar <= 45252))
    {
    return "A";
    }
    else if ((iCnChar >= 45253) && (iCnChar <= 45760))
    {
    return "B";
    }
    else if ((iCnChar >= 45761) && (iCnChar <= 46317))
    {
    return "C";
    }
    else if ((iCnChar >= 46318) && (iCnChar <= 46825))
    {
    return "D";
    }
    else if ((iCnChar >= 46826) && (iCnChar <= 47009))
    {
    return "E";
    }
    else if ((iCnChar >= 47010) && (iCnChar <= 47296))
    {
    return "F";
    }
    else if ((iCnChar >= 47297) && (iCnChar <= 47613))
    {
    return "G";
    }
    else if ((iCnChar >= 47614) && (iCnChar <= 48118))
    {
    return "H";
    }
    else if ((iCnChar >= 48119) && (iCnChar <= 49061))
    {
    return "J";
    }
    else if ((iCnChar >= 49062) && (iCnChar <= 49323))
    {
    return "K";
    }
    else if ((iCnChar >= 49324) && (iCnChar <= 49895))
    {
    return "L";
    }
    else if ((iCnChar >= 49896) && (iCnChar <= 50370))
    {
    return "M";
    }

    else if ((iCnChar >= 50371) && (iCnChar <= 50613))
    {
    return "N";
    }
    else if ((iCnChar >= 50614) && (iCnChar <= 50621))
    {
    return "O";
    }
    else if ((iCnChar >= 50622) && (iCnChar <= 50905))
    {
    return "P";
    }
    else if ((iCnChar >= 50906) && (iCnChar <= 51386))
    {
    return "Q";
    }
    else if ((iCnChar >= 51387) && (iCnChar <= 51445))
    {
    return "R";
    }
    else if ((iCnChar >= 51446) && (iCnChar <= 52217))
    {
    return "S";
    }
    else if ((iCnChar >= 52218) && (iCnChar <= 52697))
    {
    return "T";
    }
    else if ((iCnChar >= 52698) && (iCnChar <= 52979))
    {
    return "W";
    }
    else if ((iCnChar >= 52980) && (iCnChar <= 53640))
    {
    return "X";
    }
    else if ((iCnChar >= 53689) && (iCnChar <= 54480))
    {
    return "Y";
    }
    else if ((iCnChar >= 54481) && (iCnChar <= 55289))
    {
    return "Z";
    }
    else return ("?");
    }

    2.ComboBox TextChanged事件  TextBoxBase.TextChanged="Cmb_OnTextChanged"

    <ComboBox x:Name="cmb" Grid.Row="0" Grid.Column="0" IsEditable="True" IsTextSearchCaseSensitive="False" IsTextSearchEnabled="True" FontSize="30"    TextBoxBase.TextChanged="Cmb_OnTextChanged">

    3. 文字变化,过滤下拉框,下拉框弹出

    private void Cmb_OnTextChanged(object sender, TextChangedEventArgs e)
    {
    filterList = new List<string>();
    string str = cmb.Text;
    if (string.IsNullOrEmpty(str.Trim()))
    {
    cmb.ItemsSource = null;
    cmb.Items.Clear();
    cmb.ItemsSource = list;
    cmb.IsDropDownOpen = true;
    return;
    }

    foreach (var l in list)
    {
    cmb.ItemsSource = null;
    cmb.Items.Clear();
    if (GetFirstLetterOfChineseString(l).ToLower().Equals(str.Trim()))
    {
    if (!filterList.Contains(l))
    {
    filterList.Add(l);
    }
    }
    cmb.ItemsSource = filterList;
    cmb.IsDropDownOpen = true;
    }
    }

  • 相关阅读:
    tp5.1 多级控制器
    JS中三个点(...)是什么鬼?
    vue reqwest与fetch的使用
    new Vue({ render: h => h(App), }).$mount('#app')到底什么意思
    ant design vue 表格和国际化的使用
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/Fred1987/p/5799209.html
Copyright © 2011-2022 走看看