2016-03-31 36 views
0

我正在寻找将datagridview值传递给另一个表单进行编辑。我可以找到很多代码背后的例子,但我似乎无法找到一个将代码从代码背后取出的例子。将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(); 

这东西是允许把后面的代码? 我尝试尽可能少的代码,只有必要的东西。

+1

你的意思是“尽量少放在后面的代码”?你会在哪里放置你的代码? –

+0

我尝试尽可能多地放在我的主持人/控制器/ ...但这种情况我不知道该怎么做 – suspected

回答

0

取决于您如何定义“允许”。它适用于编译器和.NET框架,但这是一个很好的做法吗?那么你需要以某种方式通过,但让我们从beggining

  1. 不要对你的文本框,如“TextBox1中”等给他们一个名称,其actaully意味着像“tbName”或“nameTextbox”或任何这是开始自我解释。
  2. 如果ProductView Form专门用于显示此细节,我将为此类创建一个构造函数,它接受这些参数(最好是作为一个类)。 因此,例如我会在下面的一些分离项目中创建一个新类。

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

新的代码块是自explantatory易读并保持。

相关问题