将值从一个表单传递到另一个表单的文本框

时间:2013-07-14 16:17:25

标签: c# winforms

我知道这个问题已被问过几次,但没有一个解决方案适合我。我只是想将一个值从一个表单传递给另一个表单的文本框 在第一个表单上,双击时我有一个数据网格从datagrid列获取一个值。

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();        
 }
}

在第二个表单上,我设置了文本框的属性

public partial class RoomBooking : Form
{

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

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

 }

先谢谢你的帮助?

2 个答案:

答案 0 :(得分:0)

您必须找到要编辑它的控件,因为它不属于该类。

private void DCRoom(object sender, DataGridViewCellMouseEventArgs e)
{
    //new value
    var roomnum = dgRooms.Rows[e.RowIndex].Cells["iRoomNum"].Value.ToString();
    //The second form
    RoomBooking rb = new RoomBooking(this);
    //The textbox
    TextBox roomnumber = (TextBox)rb.Controls.Find("roomnumber", true)[0];
    //set the value of the textbox
    roomnumber.Text = roomnum;
    //show second form
    rb.Show();
}

答案 1 :(得分: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();
    }
}

希望这有帮助。