0

この質問が数回尋ねられたことは知っていますが、解決策はどれもうまくいきませんでした。あるフォームから別のフォームのテキストボックスに値を渡したいだけです。
最初のフォームでは、データ グリッドをダブルクリックすると、データ グリッド列から値が取得されます。

public partial class AvailableRooms : Form
{   
   private void DCRoom(object sender, DataGridViewCellMouseEventArgs e) 
  {
   var roomnum = dgRooms.Rows[e.RowIndex].Cells["iRoomNum"].Value.ToString();
   RoomBooking rb = new RoomBooking();//The second form
   rb.roomnumber = roomnum;           
   rb.Show();        
 }
}

2番目のフォームでは、テキストボックスのプロパティを設定しました

public partial class RoomBooking : Form
{

   public RoomBooking()
    {
      StartPosition = FormStartPosition.CenterScreen;
      InitializeComponent();
  }

  public string roomnumber
   {
      get { return txtRoomNum.Text; }
      set {txtRoomNum.Text = value;}
    }

 }

助けてくれてありがとう?

4

2 に答える 2

0

RoomBooking次のようにクラスを定義します。

public partial class RoomBooking : Form
{
    public RoomBooking() // WinForms Designer requires a public parameterless constructor
    {
        InitializeComponent();
        StartPosition = FormStartPosition.CenterScreen;
    }

    public RoomBooking(string roomNumber) : this() // Constructor chaining
    {
        RoomNumber = roomNumber;
        txtRoomNum.Text = RoomNumber;
    }

    public string RoomNumber { get; set; }
}

それで:

public partial class AvailableRooms : Form
{      
    private void DCRoom(object sender, DataGridViewCellMouseEventArgs e)
    {
        var roomNumber = dgRooms.Rows[e.RowIndex].Cells["iRoomNum"].Value.ToString();
        var roomBooking = new RoomBooking(roomNumber);
        roomBooking.Show();
    }
}

お役に立てれば。

于 2013-07-17T08:08:53.010 に答える