2

ユーザーがフィールドをタブで移動する場合、次のフィールドに移動するには LinkLabel をタブで移動する必要があります。LinkLabel にとどまらずに、フィールドからフィールドへとまっすぐ移動することをお勧めします。ただし、.NET 3.5 では、LinkLabel には、False に設定する TabStop プロパティがありません。現在、.NET 4.0 または .NET 4.5 へのアップグレードは選択肢ではありません。

機能しない LinkLabel をスキップする他の 2 つの方法を試しました。

  1. パネルに LinkLabel を配置し、パネルの TabStop プロパティを false に設定します。LinkLabel にはまだタブが付いています。

  2. LinkLabel で Enter イベントを処理し、SendKeys またはそのようなナンセンスを使用して、次のコントロールに進みます。Click イベントの発生が停止するため、これは機能しません。

また、フォーム上のすべての LinkLabels の TabIndex を、残りのコントロールよりもはるかに高い値に設定することも検討しました。ただし、それも機能しません

各フィールドは、Label を持つパネル上の TextBox または ComboBox です。ComboBox フィールドには、Panel に追加のコントロールがあります。「Edit Items」と表示された LinkLabel です。これらの各パネルは、メインの FlowLayoutPanel にあります。

私が間違っている場合は修正してください。ネストされたパネルのコントロールのタブ オーダーを理解する方法は、各パネルに独自のタブ オーダーがあることです。次に、各 Panel の TabIndex に基づいて、それぞれのタブ オーダーが順番に結合され、フォーム上のコントロールの有効なタブ オーダーが決定されます。右?したがって、各 LinkLabel の TabIndex を 200 代後半の数値に設定しても、元の問題は解決されません。

誰もこの挑戦を見たことがありますか?どのように解決しましたか?LinkLabel コントロールをサブクラス化するなど、抜本的なことをしなければならないように感じます。あなたならどうしますか?

4

2 に答える 2