C# 在wpf中创建退格键行为时出现的问题
在上图中,文本框有一些文本值。我通过单击空格按钮(btn_s)3次在111和222之间放置3个空格,然后通过单击选项卡按钮(btn_s)2次在222和333之间放置2个选项卡 当我单击Backspace按钮(btn_bs)时,每次只会清除一个空格或字母。但我想做的是,当单击Backspace按钮(btn_bs)时,如果文本框中有制表符,则应将其删除。如果文本框中有空格,则会删除 试试这个:C# 在wpf中创建退格键行为时出现的问题,c#,wpf,C#,Wpf,在上图中,文本框有一些文本值。我通过单击空格按钮(btn_s)3次在111和222之间放置3个空格,然后通过单击选项卡按钮(btn_s)2次在222和333之间放置2个选项卡 当我单击Backspace按钮(btn_bs)时,每次只会清除一个空格或字母。但我想做的是,当单击Backspace按钮(btn_bs)时,如果文本框中有制表符,则应将其删除。如果文本框中有空格,则会删除 试试这个: public partial class Backspace : Window { Control
public partial class Backspace : Window
{
Control TextBoxDetails;
TextBox BehaveTextbox;
public Backspace()
{
this.InitializeComponent();
// Insert code required on object creation below this point.
}
private void btn_t_Click(object sender, RoutedEventArgs e)
{
BehaveTextbox = TextBoxDetails as TextBox;
if (TextBoxDetails != null)
{
var _CareIndex = BehaveTextbox.CaretIndex;
BehaveTextbox.Text = BehaveTextbox.Text.Insert(_CareIndex, " ");
BehaveTextbox.Focus();
BehaveTextbox.CaretIndex = _CareIndex + 6;
}
}
private void btn_s_Click(object sender, RoutedEventArgs e)
{
BehaveTextbox = TextBoxDetails as TextBox;
if (TextBoxDetails != null)
{
var _CareIndex = BehaveTextbox.CaretIndex;
BehaveTextbox.Text = BehaveTextbox.Text.Insert(_CareIndex, " ");
BehaveTextbox.Focus();
BehaveTextbox.CaretIndex = _CareIndex + 1;
}
}
private void btn_bs_Click(object sender, RoutedEventArgs e)
{
BehaveTextbox = TextBoxDetails as TextBox;
if (TextBoxDetails != null)
{
string _CurrentValue = BehaveTextbox.Text;
var _CareIndex = BehaveTextbox.CaretIndex;
if (_CareIndex > 0)
{
string _Backspace = _CurrentValue.Remove(_CareIndex - 1, 1);
BehaveTextbox.Text = _Backspace;
BehaveTextbox.Focus();
BehaveTextbox.CaretIndex = _CareIndex - 1;
}
}
}
private void txt_result_GotFocus(object sender, RoutedEventArgs e)
{
TextBoxDetails = (Control)sender;
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
Control TextBoxDetails;
TextBox BehaveTextbox;
private void btn_t_Click(object sender, RoutedEventArgs e)
{
BehaveTextbox = TextBoxDetails as TextBox;
if (TextBoxDetails != null)
{
var _CareIndex = BehaveTextbox.CaretIndex;
BehaveTextbox.Text = BehaveTextbox.Text.Insert(_CareIndex, "\t");
BehaveTextbox.Focus();
BehaveTextbox.CaretIndex = _CareIndex + 1;
}
}
private void btn_s_Click(object sender, RoutedEventArgs e)
{
BehaveTextbox = TextBoxDetails as TextBox;
if (TextBoxDetails != null)
{
var _CareIndex = BehaveTextbox.CaretIndex;
BehaveTextbox.Text = BehaveTextbox.Text.Insert(_CareIndex, " ");
BehaveTextbox.Focus();
BehaveTextbox.CaretIndex = _CareIndex + 1;
}
}
private void btn_bs_Click(object sender, RoutedEventArgs e)
{
BehaveTextbox = TextBoxDetails as TextBox;
if (TextBoxDetails != null)
{
string _CurrentValue = BehaveTextbox.Text;
var _CareIndex = BehaveTextbox.CaretIndex;
if (_CareIndex > 0)
{
string _Backspace = _CurrentValue.Remove(_CareIndex - 1, 1);
BehaveTextbox.Text = _Backspace;
BehaveTextbox.Focus();
BehaveTextbox.CaretIndex = _CareIndex - 1;
}
}
}
private void txt_result_GotFocus(object sender, RoutedEventArgs e)
{
TextBoxDetails = (Control)sender;
}
}