我希望将datagridview值传递给另一个表单进行编辑。我可以找到许多代码背后的示例,但我似乎无法找到一个将代码从代码中删除的示例。
我的示例代码
ProductView productView = new ProductView();
productview.txtbox1.Text = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();
productview.txtbox2.Text = this.dataGridView1.CurrentRow.Cells[2].Value.ToString();
productview.txtbox3.Text = this.dataGridView1.CurrentRow.Cells[3].Value.ToString();
productview.txtbox4.Text = this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
productview.ShowDialog();
这是允许放入代码的东西吗? 我尽量把代码放在后面,只有必要的东西。
答案 0 :(得分:0)
取决于您如何定义"允许"。它的工作原理使编译器和.NET框架允许这样做,但这是一个好习惯吗?那么你需要以某种方式通过它,但让我们从开始
开始
public class ProductViewOptions
{
public string ProductName{ get; set; }
public decimal ProductPrice { get; set; }
...
}
稍后在ProductView表单中创建一个上述类型的私有属性,并创建一个接受此类型参数的构造函数。它可能如下所示:
public class ProductView : Form
{
private ProductViewOptions productOptions;
public ProductView(ProductViewOptions ProductOptions)
{
this.productOptions = ProductOptions;
}
...
}
多亏了这一点,您的代码将更具可读性,您的示例将如下所示:
ProductViewOptions productOptions = new ProductViewOptions ();
productOptions.ProductName = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();
productOptions.ProductPrice = this.dataGridView1.CurrentRow.Cells[2].Value.ToString();
ProductView productView = new ProductView(productOptions);
productView.ShowDialog();
新的代码片段是自我解释的,易于阅读和维护。
答案 1 :(得分:0)
假设您设置了DataGridView SelectionMode = FullRowSelect,则可以通过以下方式实现:
ProductView productView = new ProductView();
productview.txtbox1.Text = this.dataGridView1.SelectedRows[0].Cells["columnName1"].Value.ToString();
productview.txtbox2.Text = this.dataGridView1.SelectedRows[0].Cells["columnName2"].Value.ToString();
productview.txtbox3.Text = this.dataGridView1.SelectedRows[0].Cells["columnName3"].Value.ToString();
productview.txtbox4.Text = this.dataGridView1.SelectedRows[0].Cells["columnName4"].Value.ToString();
productview.ShowDialog();