2016-03-31 2 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 framework, но это хорошая практика? Ну вам нужно передать его как-то, но давайте начнем с самого начала

  1. Не называйте ваши TextBoxes как «TextBox1» и т.д. дать им имя, которое Actaully означает что-то вроде «tbName» или «nameTextbox» или что-нибудь, который самообучение.
  2. Если форма ProductView была сделана эксклюзивно для показа этих деталей, я бы создал конструктор для этого класса, который принимает именно эти параметры (предпочтительно как класс). Так, например, я бы создал новый класс в отдельном проекте, как показано ниже.

.

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 и легко читать и поддерживать.

Смежные вопросы