1

これを行う方法について多くの質問を調べましたが、どれも機能していないようです。メイン ビューに ListView があり、別のフォームからデータを追加してデータを入力しています。もう一方のフォームには、テキスト フィールドからいくつかの文字列を渡したいと考えています。これが私のコードです:

// 新しい予約フォームを追加:

namespace Booker
{
  public partial class newBookingForm : Form
{
    public newBookingForm()
    {
        InitializeComponent();
    }

    private void NewBookingForm_Load(object sender, EventArgs e)
    {
        roomField.Focus();
    }

    private void newBookingButton_Click(object sender, EventArgs e)
    {
        // Add to ListView
        // Add to Parse
        string room = this.roomField.Text;
        string date = this.datePicker.Value.ToShortDateString();
        string time = this.timeField.Text;
        string person = "<username>"; // Get current Parse user

        Booker booker = new Booker();
        string[] array = new string[4] { room, date, time, person };
        booker.UpdatingListView(array);

        this.Hide();
    }
}

}

// ListView フォーム:

namespace Booker
{
public partial class Booker : Form
{
    delegate void MyDelegate(string[] array);

    public Booker()
    {
        InitializeComponent();
    }

    protected override void OnFormClosing(FormClosingEventArgs e)
    {
        base.OnFormClosing(e);
        Environment.Exit(0);
    }

    private void Booker_Load(object sender, EventArgs e)
    {
        listView.View = View.Details;
        listView.AllowColumnReorder = false;
    }

    /* Methods for the Booker form */

    private void newBookingButton_Click(object sender, EventArgs e)
    {
        newBookingForm nbf = new newBookingForm();
        nbf.Show();
    }

    public void UpdatingListView(string[] array)
    {
        if (this.listView.InvokeRequired)
            this.listView.Invoke(new MyDelegate(UpdatingListView), new object[] { array });
        else
        {
            ListViewItem lvi = new ListViewItem(array[0]);
            lvi.SubItems.Add(array[1]);
            this.listView.Items.Add(lvi);
        }
    }

    private void exitButton_Click(object sender, EventArgs e)
    {
        // Error - no action being sent
    }

    private void helpButton_Click(object sender, EventArgs e)
    {
        // Display help panel
    }

    private void contactButton_Click(object sender, EventArgs e)
    {
        // Open panel/email
    }

    private void newBooking_Click(object sender, EventArgs e)
    {
        newBookingButton_Click(sender, e);

        //string[] row = { "Meeting room", "April 11, 2013", "12:00PM-1:00PM", "Ryan" };
        //var listViewItem = new ListViewItem(row);
        //listView.Items.Add(listViewItem);
    }
4

2 に答える 2

1

でこれを試してくださいUpdatingListView

ListViewItem lvi = new ListViewItem(array[0],0);
lvi.SubItems.Add(array[1]);
lvi.SubItems.Add(array[2]);
lvi.SubItems.Add(array[3]);
this.listView.Items.Add(lvi);

ListViewこれにより、配列の 4 つの項目がその列の行として最初の位置に列が作成されます。

于 2013-04-11T20:01:33.783 に答える