带有热点的图像标签

时间:2013-04-24 06:32:02

标签: c# drawing

我有一个问题,我不知道该解决的问题。 我正在为我工​​作的公司创建一个程序。该程序必须写下我们传输的发送的交付页面,因为现在该公司有超过100个excel文件,每个交付一个。

我现在得到的是带有图像的图片框,该图像有16个热点。 热点我的意思是矩形(边界),以了解用户点击的图像上的哪个部分,因为需要选择该部分。到目前为止没问题。但我唯一的问题是当按下Tab键时。

当点击标签按钮时,如何从图像上的矩形切换到另一个矩形。因为矩形边界上没有tabstop。

我已经尝试使用tabstop添加自定义控件并且效果很好但是我遇到了这个问题,即必须在内容中写入的数据仅限于该区域。所以我需要直接在图像上绘制它,所以使用控件对我来说是没有选择的。

希望我的描述足够清楚,其他人可以随意提问。

1 个答案:

答案 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);
        }