さまざまな種類のレポートを開くためのリンクを表示するフォームに取り組んでいます。このシステムにはさまざまなタイプのユーザーがいるため、ユーザーはアクセスできるレポートのタイプへのリンクのみを表示できる必要があります。
現在、この設定方法は、LinkLabels の ArrayList を持っていることですが、問題は、ArrayList 内の各 LinkLabel に対して LinkClicked イベントを作成して、各レポートに固有のフォームを表示する方法です。 .
さまざまな種類のレポートを開くためのリンクを表示するフォームに取り組んでいます。このシステムにはさまざまなタイプのユーザーがいるため、ユーザーはアクセスできるレポートのタイプへのリンクのみを表示できる必要があります。
現在、この設定方法は、LinkLabels の ArrayList を持っていることですが、問題は、ArrayList 内の各 LinkLabel に対して LinkClicked イベントを作成して、各レポートに固有のフォームを表示する方法です。 .
実際には、LinkLabelのCommandNameラベルにロードされるレポートの名前を使用して、すべてのリンクラベルに対して単一のイベントハンドラー(ArrayListのデータバインディングプロセス中にハンドラーを追加)があります。イベントハンドラーが起動したら、CommandName属性を確認し、適切な機能を起動して、指定されたレポートをロードします。
リスト内のすべての LinkLabel に同じイベント ハンドラーを適用し、sender 引数から特定の LinkLabel を取得できます。
すべての動的な LinkLabel インスタンスに対して単一のイベント ハンドラーを使用することを強くお勧めします。
私は通常、キーが LinkLabel インスタンスで、値がクリック イベント内で使用されるもの (該当する場合はレポート インスタンスなど) である Hashtable を使用します。
次に、使用するクリックイベントで(たとえば)
Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();