【发布时间】:2012-12-20 14:38:07
【问题描述】:
我设置了 2 个表单,其中一个加载了一个 datagridview,用户单击视图以选择他们想要的值。我可以在与 datagridview 相同的表单上的消息框中获取显示的值但是,当我尝试将其传递给另一个表单时,它显示为 NULL。我如何让它在文本框中显示。这是我的代码。当我调试代码时,它首先正确地传递值,但是当它完成运行时,它显示为空值。我已经尝试了许多不同的方法来尝试在不同的类上使用公共变量来做到这一点。
与文本框合一
public void FillTextBoxes(object sender, EventArgs e, string SupplierID)
{
supplierVO _SupplierVo = new supplierVO();
ListOfSuppliers _ListOfSuppliers = new ListOfSuppliers();
SupplierID = _ListOfSuppliers.SupplierCode;
MessageBox.Show(SupplierID);
txtSupplierCode.Text = SupplierID;
}
带有dataGridView的Form2
// Links to the user double click of the datagrid
public void SelectGridInformation (object sender, EventArgs e)
{
ChangeSupplierInfo _ChangeSupplerInfo = new ChangeSupplierInfo();
supplierVO _SupplierVO = new supplierVO();
Int32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
string SelectedSupplierID = dataGridView1.SelectedCells[0].Value.ToString();
SupplierCode = SelectedSupplierID;
_SupplierVO.SupplierCode = SelectedSupplierID;
_ChangeSupplerInfo.FillTextBoxes(sender, e, SelectedSupplierID);
this.Close();
}
我一直在尝试使用 Get 和 Set 属性来执行此操作,这里是此的代码示例。
public string SupplierCode
{
get
{
return _SupplierCode;
}
set
{
_SupplierCode = value;
}
}
【问题讨论】:
-
我的猜测是您可能希望使用
ListOfSuppliers类的现有实例,而不是创建新实例。 -
最好的方法是通过使用某种消息传递实现来解耦功能,然后使用发布者/订阅者模型。
-
你把
FillTextBoxes函数放在代码的什么地方? -
@Fabio 它在我希望传递变量的表单上。
-
好的,但是在 Form_Load 内部还是在构造函数中?