我有一个问题,我不知道该解决的问题。 我正在为我工作的公司创建一个程序。该程序必须写下我们传输的发送的交付页面,因为现在该公司有超过100个excel文件,每个交付一个。
我现在得到的是带有图像的图片框,该图像有16个热点。 热点我的意思是矩形(边界),以了解用户点击的图像上的哪个部分,因为需要选择该部分。到目前为止没问题。但我唯一的问题是当按下Tab键时。
当点击标签按钮时,如何从图像上的矩形切换到另一个矩形。因为矩形边界上没有tabstop。
我已经尝试使用tabstop添加自定义控件并且效果很好但是我遇到了这个问题,即必须在内容中写入的数据仅限于该区域。所以我需要直接在图像上绘制它,所以使用控件对我来说是没有选择的。
希望我的描述足够清楚,其他人可以随意提问。
答案 0 :(得分:0)
我通过底层代码来解决自己的问题
protected override bool ProcessDialogKey(Keys keyData)
{
int selectionIndex = pBoundsCollection.IndexOf(pSelection);
if (keyData == Keys.Tab)
{
while (selectionIndex++ <= pBoundsCollection.Count)
{
if (selectionIndex >= pBoundsCollection.Count)
{
selectionIndex = 0;
pSelection = (CMRField)pBoundsCollection[selectionIndex];
Refresh();
break;
}
if (((CMRField)pBoundsCollection[selectionIndex]).IsSelectable)
{
pSelection = (CMRField)pBoundsCollection[selectionIndex];
Refresh();
return false;
}
}
}
return base.ProcessDialogKey(keyData);
}