Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在wpf中创建退格键行为时出现的问题_C#_Wpf - Fatal编程技术网

C# 在wpf中创建退格键行为时出现的问题

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

在上图中,文本框有一些文本值。我通过单击空格按钮(btn_s)3次在111222之间放置3个空格,然后通过单击选项卡按钮(btn_s)2次在222333之间放置2个选项卡

当我单击Backspace按钮(btn_bs)时,每次只会清除一个空格或字母。但我想做的是,当单击Backspace按钮(btn_bs)时,如果文本框中有制表符,则应将其删除。如果文本框中有空格,则会删除

试试这个:

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;
        }
    }