2008-09-26 13 views
1

異なる種類のレポートを開くためのリンクを表示するフォームを作成しています。このシステムにはさまざまなタイプのユーザーが存在するため、ユーザーはアクセスできるレポートの種類のリンクしか表示できません。.NETでLinkLabelsのArrayListを使用してLinkClickedイベントを受け取る方法

現在のところ、私はLinkLabelsのArrayListを持っているが、私が抱えている問題は、ArrayList内の各LinkLabelに対してLinkClickedイベントを持たせて、フォームを呼び出す方法である各レポートに固有です。

答えて

2

あなたはあなたのリスト内のすべてにLinkLabelに同じイベントハンドラを適用すると、送信者の引数から特定にLinkLabelを得ることができます。

2

実際には、LinkLabelのCommandNameラベルにロードするレポートの名前を使用して、(ArrayListのデータバインディング処理中にハンドラを追加する)すべてのリンクラベルに対して1つのイベントハンドラを使用します。イベントハンドラが起動すると、CommandName属性と適切な機能をオフにして、指定されたレポートをロードします。

0

すべてのダイナミックLinkLabelインスタンスに対して単一のイベントハンドラを使用することをお勧めします。

私は通常、キーがLinkLabelインスタンスで、その値がclickイベント(適切な場合はレポートインスタンスなど)内で使用されるものである場合、Hashtableを使用します。あなたは(たとえば)を使用するクリックイベントで次に

Report r = m_TheTable[sender] as Report; 
if(r != null) r.DoSomething(); 
関連する問題