gpt4 book ai didi

c# - 如何让箭头键在 WinForms TableLayoutPanel 中移动焦点?

转载 作者:行者123 更新时间:2023-11-30 19:46:19 29 4
gpt4 key购买 nike

似乎默认是向上和向左键转到上一个制表位,向下/向右键转到下一个制表位。我有一个 TableLayoutPanel,每个都有一个按钮。有没有一种简单的方法可以使箭头键将单元格中的按钮聚焦到 TableLayoutPanel 中的相应方向,而不是仅仅跟随制表位?

最佳答案

是的,没问题。只需创建您自己的 TableLayoutPanel 覆盖并让它处理光标键以获得您想要的内容。向您的项目添加一个新类并粘贴如下所示的代码。编译。将工具箱顶部的新面板拖放到表单上,替换旧面板。

using System;
using System.Windows.Forms;

class MyLayoutPanel : TableLayoutPanel {
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
var ctl = this.FindForm().ActiveControl;
if (ctl.Parent == this) {
int col = this.GetColumn(ctl);
int row = this.GetRow(ctl);
if (keyData == Keys.Left && col > 0) {
var newctl = this.GetControlFromPosition(col - 1, row);
if (newctl != null) newctl.Focus();
return true;
}
// etc..
}
return base.ProcessCmdKey(ref msg, keyData);
}
}

关于c# - 如何让箭头键在 WinForms TableLayoutPanel 中移动焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762523/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com