我有两个表格(表格“销售订单”和表格“插入明细文件”)。在表单“销售订单”中,我已将一些值插入到多个对象中,请参阅以下屏幕截图:
为标题文档插入一些值后,接下来我要通过单击“销售订单”表单中的“添加”按钮插入详细信息文档。
单击该按钮后将显示“插入详细信息文档”表格,请参阅以下屏幕截图:
我在“插入详细信息文档”中的所有对象中插入了所有值。我需要通过单击此表单的“添加”按钮,在“表单”中的“数据网格视图”中显示此表单中的所有值。因此,Form将显示如下屏幕截图:
有谁知道如何提供这种条件? 感谢。
答案 0 :(得分:1)
public class Product_List {
public string Branch { get; set; }
public string InvetoryID { get; set; }
public string Warehouse { get; set; }
public string Quantity { get; set; }
public string Unit { get; set; }
}
public partial class Insert_Detail : Form
{
public DataTable Grid_Product = new DataTable();
List<Product_List> productlist = new List<Product_List>();
private void Add_Click(object sender, EventArgs e)
{
pcmn.cmn_DT.Clear();
Grid_Product.Clear();
productlist.Add(new Product_List
{
Branch = txt_Branch.Text,
InvetoryID = ddlInvetoryID.SelectedValue.ToString(),
Warehouse = ddlWarehouse.SelectedValue.ToString(),
Quantity = txt_Quantity.Text,
Unit = txt_Unit.Text,
});
Grid_Product = ToDataTable(productlist);
this.Close();
}
}
public partial class SalesOrder : Form
{
public void AddItem_Click(object sender, EventArgs e)
{
POS_ITEM_Details popup = new POS_ITEM_Details();
popup.ShowDialog();
foreach (DataRow row in popup.Grid_Product.Rows)
{
SalesOrder_Grid.Rows.Add(row["Branch"].ToString(), row["InvetoryID"].ToString(),row["Warehouse"].ToString(),..);
}
}
public DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
//Get all the properties
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
//Setting column names as Property names
dataTable.Columns.Add(prop.Name);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
//inserting property values to datatable rows
values[i] = Props[i].GetValue(item, null);
}
dataTable.Rows.Add(values);
}
//put a breakpoint here and check datatable
return dataTable;
}
答案 1 :(得分:0)
在这种情况下,我更喜欢使用一个事件。 您可以在主表单中注册活动。 在添加按钮上,您可以通知网格窗口。 您可以使用一些易于使用的EventArgs传输数据。
通过这种方式,您只需展开EventArgs
即可轻松更改表单