OKファイルメニューの動的フォームを作成したい文字列(実際にはファイル名)のリストがあります。
したがって、ファイル名のリスト、ディレクトリ文字列の最初のコードストリップ、およびファイルサフィックスを取得します(ボーナスの質問として、2つの削除行を1つにまとめるにはどうすればよいですか?)
List<string> test_ = populate.Directorylist();
foreach (var file_ in test_)
{
int len_ = file_.Length;
string filename_ = file_.Remove(0, 8);
filename_ = filename_.Remove(filename_.Length - 4).Trim();
ToolStripItem subItem = new ToolStripMenuItem(filename_);
subItem.Click += new EventHandler(populate.openconfig(file_)); //this is my problem line
templatesToolStripMenuItem.DropDownItems.Add(subItem);
したがって、リストを循環して、毎回「templatesToolStripMenuItem」にアイテムを追加するだけです。
ただし、ユーザーがアイテムをクリックすると、file_varibleがpopulate.openconfigメソッドに送信されるイベントを追加する必要があります。
アイテムの追加は正常に機能しますが、イベント処理を追加するにはどうすればよいですか?
元の配列で完全なファイル名を検索し、それを実行するデフォルトのメソッドに送信できると思います。しかし、メニューバーに項目を追加するので、確かにこれを行うことができます。
ありがとうございました
アーロン
そうです、最後に私は追加しました
subItem.tag = File_
....
then have the event handle to
void subItem_Click (object sender, EventArgs e) //open files from menu
{
ToolStripMenuItem toolstripItem = (ToolStripMenuItem)sender;
string filename_ = toolstripItem.Tag.ToString(); //use the tag field
populate.openconfig(filename_);
populate.Split(_arrayLists); //pass read varible dictonary to populate class to further splitting in to sections.
Populatetitle();//Next we need to populate the Titles fields and datagrid view that users will enter in the Values
}
そして、私がそれをもう少し片付けることができる方法を見ました:)
助けてくれる人たちに乾杯、猫の皮を剥ぐ方法がいくつあるか大好きです:)