代码改变世界

控件中数据模板禁用小键盘减号折叠

2017-06-27 21:39  杨新华  阅读(420)  评论(0编辑  收藏  举报

WPF里面自定义了TreeListView控件,在树列表项的数据模板中添加了文本框,当在文本框内输入小键盘的减号时,自动折叠;因为小键盘+与-符号是自动折叠的;可以对win7及以上系统 的文件夹列表树,进行验证;为了禁止输入时不折叠,使用以下代码实现

<controls:TreeListView.Columns>

   <GridViewColumn Header="列头名称">

    <DataTemplate>

        <TextBox Text="{Binding Name}" PreviewkeyDown="textBox_PreviewkeyDown"/>

    </DataTemplate>

   </GridViewColumn>

</controls:TreeListView.Columns>

后台代码

private void textBox_PreviewkeyDown(object sender,KeyEventArgs e)

{

  if(e.KeyStates==Keyborad.GetKeyStates(Key.Subtract))

  {

    TextBox t1=sender as TextBox;

    int index = t1.SelectionStart; //当前光标位置

    int sectionLength = t1.SelectionLength;//选中的字符长度

    string tempStr = t1.Text.Remove(index,sectionLength);    

 

    t1.Text = tempStr.Insert(index,"-");

    e.Handled = True;//禁用小键盘减号折叠

  }

}