選択したアイテムごとにフォームが作成されると仮定すると、開いているフォームをListViewItemのタグで追跡できます。
lv.ItemSelectionChanged += lv_ItemSelectionChanged;
private void lv_ItemSelectionChanged(Object sender, ListViewItemSelectionChangedEventArgs e)
{
if(e.IsSelected)
{
if(e.Item.Tag == null)
{
var form = new Form2();
// init Form2 here
form.Parent = this.panel1;
e.Item.Tag = form;
}
(e.Item as Form2).BringToFront();
}
}
EDIT: 一方、あなたが作成し、唯一の編集を持つフォームを切り替えるなぜ、それだけでファイルの内容をテキストボックスを埋めるためにはるかに簡単になります:
ListView1.ItemActivate += ListView1_ItemActivate;
private void ListView1_ItemActivate(Object sender, EventArgs e)
{
if(ListView1.SelectedItems.Count > 0)
{
this.form2Instance.ContentsTextBox.Text = File.ReadAllText(this.rootFilesPath + @"\" + ListView1.SelectedItems.Last().Text));
}
}
そして、もしListViewItemのタグにファイルの内容を保存するだけです。
ListView1.ItemActivate += ListView1_ItemActivate;
private void ListView1_ItemActivate(Object sender, EventArgs e)
{
if(ListView1.SelectedItems.Count > 0)
{
var item = ListView1.SelectedItems.Last();
if(item.Tag == null)
item.Tag = File.ReadAllText(this.rootFilesPath + @"\" + item.Text);
this.form2Instance.ContentsTextBox.Text = (string) item.Tag;
}
}
出典
2010-12-31 01:20:49
too