主キー インデックスと strUsername を持つデータベース行があり、これらを使用してメニュー ストリップにドロップダウン項目を動的に生成しています。このコードは、ドロップダウン項目にユーザー名文字列をテキスト値として指定し、イベント ハンドラーを作成します。主キーの整数をクリック イベント メソッドに渡したいのですが、取得したコードはすべてのクリック イベント メソッドにデータベースrow.count
値を与えます。誰でも助けてもらえますか?
// Generate drop down items from database
daUsers.Fill(dtUsers);
// Update mnuFileNew drop down list
if (dtUsers.Rows.Count != 0)
{
mnuFileNew.DropDownItems.Clear();
foreach (dbAutoBloggerDataSet.dbTblUsersRow row in dtUsers.Rows)
{
ToolStripMenuItem newItem = new ToolStripMenuItem(row.strUsername);
newItem.Click += new EventHandler((sender, e) => mnuFileNewUser_Click(sender, e, row.nId));
mnuFileNew.DropDownItems.Add(newItem);
}
}
// Drop down item event handler
private void mnuFileNewUser_Click(object sender, EventArgs e, int nId)
{
frmLogin frmLogin = new frmLogin(nId);
DialogResult result = frmLogin.ShowDialog();
if (result == DialogResult.OK)
{
frmProfile frmProfile = new frmProfile(frmLogin.nId);
frmProfile.ShowDialog();
screenRefresh();
}
}