0

我有一个我不知道如何解决的问题。我正在为我工​​作的公司创建一个程序。该程序必须为我们运输的货物写下一个交付页面,因为目前该公司有超过 100 个 Excel 文件,每个交付一个。

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

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

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

希望我的描述足够清楚,否则请随时提问。

4

1 回答 1

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);
        }
于 2013-04-24T17:53:15.457 回答