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;
}
}
在上图中文本框有一些文本值。我在 111 和 222 之间放置3个空格,点击SPACE按钮(btn_s)3次,然后在<单击TAB按钮(btn_t)两次,强> 222 和 333 。
当我单击Backspace按钮(btn_bs)时,每次只清除一个空格或字母。但我想要做的是,当单击Backspace按钮(btn_bs)时,如果在文本框中有选项卡,那应该删除。如果文本框中有间隔,则会删除。
答案 0 :(得分:1)
试试这个:
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;
}
}