wpf datagrid怎么得到第一项焦点然后在方向键上下移动

wpf datagrid怎么得到第一项焦点然后在方向键上下移动,第1张

我用模板列完成了楼主提出的功能!~望采纳!~

前端:

<Grid>

<DataGrid AutoGenerateColumns="False" Name="dataGrid1" >

<DataGridColumns>

<DataGridTextColumn Binding="{Binding Key}"/>

<DataGridTemplateColumn Header="时间">

<DataGridTemplateColumnCellTemplate>

<DataTemplate>

<TextBlock MouseDown="txtdate_MouseDown" Name="txtdate"/>

</DataTemplate>

</DataGridTemplateColumnCellTemplate>

</DataGridTemplateColumn>

</DataGridColumns>

</DataGrid>

</Grid>

后台:

public MainWindow()

{

InitializeComponent();

Dictionary<int, string> dic = new Dictionary<int, string>

{

{1,"a"},

{2,"b"},

{3,"c"},

{4,"d"},

{5,"e"}

};

dataGrid1ItemsSource = dic;

}

private void txtdate_MouseDown(object sender, MouseButtonEventArgs e)

{

TextBlock tb = sender as TextBlock;

tbText = DateTimeNowToShortTimeString();

}这个很简单哈,只是编辑的时候出现用来编辑的控件(如textbox或combobox),那就编辑 <DataGridTemplateColumnCellEditingTemplate>就行啦!~ 默认显示空白的话,<DataGridTemplateColumnCellTemplate>里控件所绑定的字段默认值没有就行了哈。

背景色的变化,可以在IsFocused事件中写。

至于输入完成后textBox失去焦点,可以textbox接收到回车按键事件和失去焦点这个两个事件中,将焦点转移到其他的Element上去。

例如

GridIsFocusable = true;

GridGetFocus();

GridIsFocusable = false;

不知道 键盘控件 是否和 TextBox 同在一个 Windows 中

如果是, 将 键盘控件按钮的 Focusable 属性置为 False,

当点击 Button 时, Input 的焦点并不切换, 并不需要写切换回的代码

如果在 Button Click 时想得到当前 处于输入(inputable) 状态的控件(例如 TextBox), 可以在 Click 事件中:

IInputElement iie=SystemWindowsInputFocusedElement;

if(iie is TextBox) MessageBoxShow((iie as TextBox)Text);

如果 处于输入状态的控件(如 TextBox) 和你的键盘控件不在同一窗口, 可以在 处于输入状态的控件失去焦点时记下此控件, 以便你在处理按钮事件时用

另一个方法是, 你自定义的控件 可以增加一个 DependencyProperty 来绑定当前处于输入状的控件 因为你总需要一个事件来激活虚拟键盘, 在这个事件中设置此属性

代码本身没问题,如果把代码放在按钮里执行能够达到效果,现在无效应该是执行顺序问题。

在窗口启动时,会根据每个空间的tab值把焦点置于tab值最小的控件上,这个过程如果在form_load事件之后,控制焦点的代码就白做了。我试了一下,把代码放在form_activated代码里就可以了,应该是激活事件比较靠后吧。

需要这么两步:

第一,在XML中控件的属性中加上以下这么两项属性

Android:focusable="true"

android:focusableInTouchMode="true"

第二,在代码中用调用requestFocus()方法,这样就可以顺利的将焦点主动的设置到该控件上了。

以上就是关于wpf datagrid怎么得到第一项焦点然后在方向键上下移动全部的内容,包括:wpf datagrid怎么得到第一项焦点然后在方向键上下移动、WPF 处理textbox的样式问题,点击获得焦点背景颜色变化,当点击窗体其他地方(非控件),textbox自动、WPF虚拟键盘如何不获得当前焦点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9338218.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存