0

回避策がわからない問題があります。私は私が働いている会社のプログラムを作成しています。プログラムは、私たちが輸送する送信の配送ページを書き留める必要があります。これは、現在、会社には配送ごとに 100 以上の Excel ファイルがあるためです。

私が今得たのは、画像を含むピクチャボックスで、その画像には16個のホットスポットがあります。ホットスポットとは、ユーザーが画像のどの部分をクリックしたかを知るための Rectangles(Bounds) を意味します。その部分を選択する必要があるためです。これまでのところ問題ありません。しかし、私の唯一の問題は、Tab ボタンを押すときです。

タブボタンを押したときに、画像上の長方形から他の長方形に切り替えるにはどうすればよいですか。長方形の境界にタブストップがないためです。

タブストップを使用してカスタムコントロールを追加しようとしましたが、うまくいきましたが、コンテンツに書き込む必要があるデータがその領域に限定されているという問題がありました。そのため、画像に直接ペイントする必要があるため、コントロールを使用することはできません。

私の説明が十分に明確であることを願っています。

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 に答える