0

ListViewに情報と編集ボタンが入力されたがありますform1。ここでアイテムを選択しListViewて[編集]をクリックすると、form2選択したアイテムのデータが表示されます。

たとえばListView、ヒット編集から名前を選択すると、現在のform2場所に移動TextBoxします。たとえばtextbox1 = Name、名前textbox2 = AgeList<data>年齢の2つの項目があります。

私が今必要としているのは、ListViewアイテムの1つを選択して事前編集すると、それが開いて名前と年齢がform2読み込まれ、どうすればよいですか?textbox1textbox2

listview_SelectedIndexChanged私はこのようなイベントを試していました:

Form2 edit = new Form2();
edit.textBox1.Text = People[this.listView1.SelectedItems[0].Index].Name;
edit.textBox2.Text = People[this.listView1.SelectedItems[0].Index].Age;

これをボタンクリック編集に参照する方法はありますか?または別の方法はありますか?

後で変更を保存するにはどうすればよいですか?

4

3 に答える 3

0

これにはカスタムコンストラクターを使用します

フォーム1

private void button1_Click(object sender, EventArgs e)
{
   string name = People[this.listView1.SelectedItems[0].Index].Name;
    int age = People[this.listView1.SelectedItems[0].Index].Age;
     Form2 edit = new Form2(name,age);

    edit.ShowDialog(this);
}

フォーム2

public form2(string name,int age)
{

        textBox1.Text = name;
        textBox2.Text = age.ToString();
}

おっとの概念を使用してください..それはいいです。

于 2012-05-29T03:33:32.020 に答える
0

プロパティを使用してデータを Form2 に渡し、イベントを使用して保存されたデータを返します。

フォーム1

private void button1_Click(object sender, EventArgs e)
{
    Form2 edit = new Form2();
    edit.SaveEvent += new Form2.SaveEventHandler(edit_SaveEvent);  //Add event handler
    edit.name = People[this.listView1.SelectedItems[0].Index].Name;
    edit.age = People[this.listView1.SelectedItems[0].Index].Age;
    edit.ShowDialog(this);
}

void edit_SaveEvent(object sender, SaveEventArgs e)
{
    //Do Your work here with e.newAge and e.newName
    ((Form2)sender).Close(); //Close Form2
}

フォーム2

public partial class Form2 : Form
{
    public delegate void SaveEventHandler(object sender, SaveEventArgs e);
    public event SaveEventHandler SaveEvent;
    public string name { get; set; }
    public string age { get; set; }

    public Form2()
    {
        InitializeComponent();
    }


    private void Form2_Load(object sender, EventArgs e)
    {
        textBox1.Text = name;
        textBox2.Text = age;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        SaveEvent(this, new SaveEventArgs(textBox1.Text, textBox2.Text));
    }

}

public class SaveEventArgs
{
    public SaveEventArgs(string name, string age) {newName = name; newAge = age; }
    public String newName {get; private set;} // readonly
    public String newAge {get; private set;}
}
于 2012-05-29T02:58:26.093 に答える