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>里控件所绑定的字段默认值没有就行了哈。

看你的“获取”是如何定义的。

在WPF和Winform中, 如果一个控件visibility = hidden时,其默认的获取焦点为False。

打个比方, 页面上有3个TextBox(1,2,3), 正常情况下,光标在第一个Textbox1时, 按下Tab键,焦点会自动切换到Textbox2上。当Textbox2隐藏后,按下Tab键,光标会切到Textbox3上去,而不会给隐藏控件焦点。

但是你手动去设置某个已经被隐藏的控件Focused = true,也不会报错。只是完全没有用罢了。

如果你设置了某个隐藏的控件Focused = true; 然后去找当前界面的焦点时, 系统会报空引用异常。

还是上面的3个Textbox,当你把Textbox2隐藏且手动设置为焦点时, 第一次按下Tab键, 系统内部会报错(界面上没有反应),第二次按下Tab时, 焦点自动切到TextBox1上,第三次按Tab,焦点切换到TextBox3

以上就是关于wpf datagrid怎么得到第一项焦点然后在方向键上下移动全部的内容,包括:wpf datagrid怎么得到第一项焦点然后在方向键上下移动、C# 控件隐藏还能否获取焦点、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存