光标在控件间自动跳转

一、cs

#region
        private List<TextBox> _filterByTextBoxList = null;
        private List<RadComboBox> _filterByComboBoxList = null;
        private void TextBox_FilterBy_Loaded(object sender, RoutedEventArgs e)
        {
            TextBox c = sender as TextBox;

if (_filterByTextBoxList == null)
            {
                _filterByTextBoxList = new List<TextBox>();
            }

_filterByTextBoxList.Add(c);
        }

private void TextChangedHandler(object sender, RoutedEventArgs e)
        {
            TextBox txtbox = ((Control)sender) as TextBox;
            //if (txtbox.Text.Length == 4 && (txtbox.Name == "depap" || txtbox.Name == "arrap"))
            //{
            //    ReBinding(sender);
            //}

Action<object, RoutedEventArgs> tt = new Action<object, RoutedEventArgs>(ChangeFocus);
            this.Dispatcher.BeginInvoke(tt, System.Windows.Threading.DispatcherPriority.Normal, sender, e);
            e.Handled = true;
        }

private void ComboBox_FilterBy_Loaded(object sender, RoutedEventArgs e)
        {
            RadComboBox c = sender as RadComboBox;

if (_filterByComboBoxList == null)
            {
                _filterByComboBoxList = new List<RadComboBox>();
            }

_filterByComboBoxList.Add(c);
        }

private void ChangeFocus(object sender, RoutedEventArgs e)
        {
            string name = ((Control)sender).Name;
            TextBox txtbox = ((Control)sender) as TextBox;
            //RadComboBox comboBox = ((Control)sender) as RadComboBox;
            if (((Control)sender).DataContext != null)
            {

FsViewDataBase fvbase = viewModel.CurrentFvd;
                if (name == "tbbegin" && txtbox.Text.Length == 5)
                {
                    TextBoxFocus("tbend", fvbase.SEQ);
                }
                else if (name == "tbend" && txtbox.Text.Length == 5)
                {
                    TextBoxFocus("depap", fvbase.SEQ);

}
                else if (name == "depap" && txtbox.Text.Length == 4)
                {
                    TextBoxFocus("txtDeptime", fvbase.SEQ);
                }
                else if (name == "txtDeptime" && txtbox.Text.Length == 4)
                {
                    TextBoxFocus("txtArrtime", fvbase.SEQ);

}
                else if (name == "txtArrtime" && txtbox.Text.Length == 4)
                {
                    TextBoxFocus("arrap", fvbase.SEQ);

}
                else if (name == "arrap" && txtbox.Text.Length == 4)
                {
                    ComboBoxFocus("cboRoute", fvbase.SEQ);
                }
            }

}

private void TextBoxFocus(string txtName, int seq)
        {
            try
            {
                for (int i = 0; i < _filterByTextBoxList.Count; i++)
                {
                    TextBox c = _filterByTextBoxList[i];
                    int tag = Convert.ToInt32(c.Tag);
                    if (c != null)
                    {
                        if (c.Name == txtName && tag == seq)
                        {
                            c.Focus();
                            c.Select(0, c.Text.Length);
                        }
                    }

}
            }
            catch (Exception)
            {

}
        }

private void ComboBoxFocus(string comName, int seq)
        {
            try
            {
                for (int i = 0; i < _filterByComboBoxList.Count; i++)
                {
                    RadComboBox c = _filterByComboBoxList[i];
                    int tag = Convert.ToInt32(c.Tag);
                    if (c != null)
                    {
                        if (c.Name == comName && tag == seq)
                        {
                            c.Focus();
                            c.IsHighlighted = true;
                        }
                    }
                }
            }
            catch (Exception)
            {

}

}

#endregion

二、界面

指定Name=“”、TextChanged="TextChangedHandler" 、Loaded="TextBox_FilterBy_Loaded"

时间: 2024-08-03 18:05:50

光标在控件间自动跳转的相关文章

Android各组件/控件间通信利器之EventBus

实际项目开发过程中,经常遇到如下场景:不同的应用程序组件的控件间具有一定的相互关联性,其中用户对后者进行的某种操作会引起前者的相应改变.举一个具体的场景:以糗事百科为例,在糗事列表页和详情页页,对于每个糗事而言,布局基本一致,在详情页点击了个赞,赞的数量增加,同时赞的图标发生了变化,此时返回到列表页,此糗事上的赞图标以及数量与刚刚详情页的需要保持一致.在举一个例子,对于多个底部导航tab下的资讯类阅读app,在咨询详情页点击了收藏,然后收藏成功,此时回到底部tab中的个人中心,假如个人中心中有我

iOS开发——实战技术OC篇&amp;点击状态栏ScrollView(包括子控件)自动滚到顶部

点击状态栏ScrollView(包括子控件)自动滚到顶部 其实这种方式我们平时见的还是比较多的,而且适合用户的需求,所以就搬来琢磨了一下,感觉效果还不错 这里就直接将解决思路一一写出来不将代码分段展示了,在代码中我加了详细的注释objective-c的套路和swift基本一样,在最后会将Swift和objective-c的代码一起放上,如果需要直接解决问题的童鞋可以直接将代码拷贝到工程里即可 首先创建一个topWindow继承至NSObject,这里我们考虑将这个功能完全封装起来,所以所有的方法

基于MVC+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度

在默认情况下,EasyUI的DataGrid好像都没有具备自动宽度的适应功能,一般是指定像素宽度的,但是使用的人员计算机的屏幕分辨率可能不一样,因此导致有些地方显示太大或者太小,总是不能达到好的预期效果,如果DataGrid能够根据窗口尺寸进行伸缩,效果应该好很多.本文主要介绍DataGrid控件实现自动适应宽带高度的操作. 首先我们需要定义一个resizeDataGrid的扩展函数,方便在页面里面进行调用,扩展函数定义如下所示. //datagrid宽度高度自动调整的函数 $.fn.exten

基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度

在默认情况下,EasyUI的DataGrid好像都没有具备自动宽度的适应功能,一般是指定像素宽度的,但是使用的人员计算机的屏幕分辨率可能不一样,因此导致有些地方显示太大或者太小,总是不能达到好的预期效果,如果DataGrid能够根据窗口尺寸进行伸缩,效果应该好很多.本文主要介绍DataGrid控件实现自动适应宽带高度的操作. 首先我们需要定义一个resizeDataGrid的扩展函数,方便在页面里面进行调用,扩展函数定义如下所示. //datagrid宽度高度自动调整的函数 $.fn.exten

qt 布局管理按钮控件间有空隙?

定义了几个按钮控件,想要按钮间没有空隙,我使用setspaces(0)来设置它们之间的间隔. 结果控件间还是有空隙,如图 我对控件所在的widget的背景进行设置,(会把style传到子控件)发现结果如图 对按钮控件的背景进行设置,结果如图 所以把按钮控件的背景重新设置一下就ok了.

WPF控件内容自动缩放

一.功能.布局描述 1.使用Grid的GridSplitter实现可拖拽分隔栏效果.当ShowsPreview设置为True时,拖拽过程中不会刷新(控件内容要等到鼠标释放时才变化):当ShowsPreview设置为False时,控件内容实时跟随变化. 2.使用ViewBox特性实现控件内容随拖拽自动变化. 3.布局代码: <Grid> <Grid.RowDefinitions> <RowDefinition Height="40"/> <Row

C#实现窗体拖动时各个控件同比自动放缩大小

实现方式主要是利用panel控件为主题,对于每个控件的大小位置和字体这几个属性进行记录, 然后根据窗体改变的大小同时放缩. 简要步骤如下: 1 创建C#窗体程序项目. 2  Panel放置到窗体. 3  设置属性dock为fill. 4  注意MinnumSize不能设置为0, 改成大于0都行. public partial class FrmDemo : Form { double dFrmWidth; double dFrmHeight; double dZoomHorizon; doubl

Android——控件AutoCompleteTextView 自动提示

Android:控件AutoCompleteTextView 自动提示 在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,这种效果在Android中是用AutoCompleteTextView实现的. xml <AutoCompleteTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/aut

[Android] AutoCompleteTextView:自动完成输入内容的控件(自动补全)

AutoCompleteTextView是EditText的直接子类,与普通EditText的最大不同就是,在用户输入的过程中,可以列出可供选择的输入项,方便使用者. AutoCompleteTextView与普通EditText控件使用方法类似,只是需要为其指定一个Adapter对象,绑定可供选择的输入项. AutoCompleteTextView可实现一次自动完成的功能,而另一个控件MultiAutoCompleteTextView,可以连续多次自动完成,即在通过自动完成一个输入项,接着输入