作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我想存储/传递一个值时,我总是使用 .Tag 属性。例如,当我存储值时:
Form prosesEdit = new FormProsesChemicalRawWbEdit();
prosesEdit.Tag = (int)this.proses_chemicalDataGridView.Rows[e.RowIndex].Cells[1].Value;
prosesEdit.ShowDialog();
然后,我会像这样将值传递到我的 EDIT 表单中:
proses_chemical_id = (int) this.Tag;
this.proses_chemicalTableAdapter.FillByChemId(this.mcd_softwareDataSet.proses_chemical, proses_chemical_id);
this.proses_chemical_listTableAdapter.FillByChemId(this.mcd_softwareDataSet.proses_chemical_list, proses_chemical_id);
但最近,我应该存储和传递 2 个不同的值。比方说 (int)this.proses_chemicalDataGridView1.Rows[e.RowIndex].Cells[1].Value;
和 (int)this.proses_chemicalDataGridView2.Rows[e.RowIndex].Cells[ 1].值(value);
我该怎么做?谢谢
最佳答案
到目前为止给出的两个答案都可以,但我想稍微详细说明一下答案并提供一个替代方案。假设您像这样创建自己的类:
public class YourClass
{
public int ProsesChemicalId1 { get; set; }
public int ProsesChemicalId2 { get; set; }
}
然后您可以像这样将您的类的一个实例分配给 Tag 属性:
YourClass yourClass = new YourClass();
yourClass.ProsesChemicalId1 = this.proses_chemicalDataGridView1.Rows[e.RowIndex].Cells[1].Value;
yourClass.ProsesChemicalId2 = this.proses_chemicalDataGridView2.Rows[e.RowIndex].Cells[1].Value;
Form prosesEdit = new FormProsesChemicalRawWbEdit();
prosesEdit.Tag = yourClass;
prosesEdit.ShowDialog();
您可以像这样从 Tag 属性中取回该类的实例:
yourClass = (YourClass) this.Tag;
this.proses_chemicalTableAdapter.FillByChemId(this.mcd_softwareDataSet.proses_chemical, yourClass.ProsesChemicalId1);
但是,使用 Tag 属性在表单中传递值通常是不好的做法,因为它需要大量的类型转换和每个标记中存储的内容的知识。
一个更健壮的方法是使用构造函数注入(inject),因为你知道你正在创建的表单类型:
int value1 = this.proses_chemicalDataGridView1.Rows[e.RowIndex].Cells[1].Value;
int value2 = this.proses_chemicalDataGridView2.Rows[e.RowIndex].Cells[1].Value;
Form prosesEdit = new FormProsesChemicalRawWbEdit(value1, value2);
prosesEdit.ShowDialog();
然后您很可能必须将这些值存储为表单内的属性或字段。这是一种更健壮的方法的原因是它可以抵抗意外更改。换句话说,如果您将来需要传递第三个值,您就不太可能忘记更改需要更改的代码。
你也可以在这里使用属性注入(inject),但我不确定你的要求,所以我会留给你决定。
关于c# - 如何在 C# 中应用多个 .Tag 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13468241/
我是一名优秀的程序员,十分优秀!