c# - 将父表单放在前面并维护来自子表单的列表计数
问题描述
我必须形成“SalesProduct”和“SearchProduct”。在“SalesProduct”表单中,当我单击 datagridview 单元格/列名“产品名称”时,datagridview 上会打开“SearchProduct”表单,在其中我从 datagridview 复选框按钮中搜索项目选择项目行,然后单击“选择”按钮,然后我希望它应该隐藏/关闭“SearchProduct”按钮并在父级“SalesProduct”表单中显示。
它还将列表中的数据从“searchProduct”表单获取到“SalesProduct”表单,并在“SalesProduct”表单中添加一行。当我再次单击“产品”列时,它将再次打开“searchProduct”表单并从中选择行,然后在单击“选择”按钮后关闭并在前面“SalesProduct”表单并在表单中添加这个新行,而不是删除我之前添加的其他行.
我的问题是,当“SearchProduct”表单关闭时,“SalesProduct”表单没有出现在前面,它正在打开新表单,并且它还删除了我之前放入“SalesProduct”表单的其他行。
我的代码如下。请帮助我如何保持计数并在不创建新实例的情况下引入前端父表单。
,,,,
public partial class SaleProduct_Form : Form
{
public List<CommenValue_Class> value { get; set; }
public SaleProduct_Form()
{
InitializeComponent();
}
private void gridSalesProduct_CellEnter(
object sender,
DataGridViewCellEventArgs e)
{
if (gridSalesProduct.CurrentCell.ColumnIndex == 1)
{
SearchProduct_Form searchProduct = new SearchProduct_Form();
searchProduct.ShowDialog(this);
}
}
private void SaleProduct_Form_Load(
object sender,
EventArgs e)
{
addToGrid(value);
}
public void addToGrid(List<CommenValue_Class> val)
{
if (val != null)
{
foreach (CommenValue_Class item in val)
{
int n = gridSalesProduct.Rows.Add();
gridSalesProduct.Rows[n].Cells["ProductName"].Value = item.Product_Name;
gridSalesProduct.Rows[n].Cells["Balance"].Value = item.Qty_Balance;
gridSalesProduct.Rows[n].Cells["Rate"].Value = item.Rate;
}
}
}
}
public partial class SearchProduct_Form : Form
{
public SearchProduct_Form()
{
InitializeComponent();
}
private void btnSelectProduct_Click(object sender, EventArgs e)
{
try
{
List<CommenValue_Class> CV = new List<CommenValue_Class>();
foreach (DataGridViewRow item in gridProductList.Rows)
{
if (Convert.ToBoolean(item.Cells[0].Value))
{
CV.Add(new CommenValue_Class
{
Product_Name = item.Cells["Product_Name"].Value.ToString(),
Qty_Balance = Convert.ToInt32( item.Cells["Balance_Qty"].Value.ToString()),
Rate = Convert.ToDecimal (item.Cells["Per_Unit_Sale_Price"].Value.ToString())
});
}
}
SaleProduct_Form saleProduct = new SaleProduct_Form();
saleProduct.value = CV;
saleProduct.Show();
this.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
解决方案
推荐阅读
- c - pthreads的多线程调用,排序时不同的结果
- python - 使用 pyspark 将 RDD 行转换为数据帧时出错
- javascript - 是否有任何因素决定执行上下文堆栈中的优先级执行?
- python - Pycharm 调试器监视 UnicodeEncodeError
- android - 滑动以显示在 Android 中使用 RecyclerView 创建的列表上的操作按钮
- javascript - 如何在脚本中循环表单动作?
- javascript - 不允许加载本地资源:Ionic3(ios)
- php - 浏览器不加载更新的 Laravel Blade.php 文件
- hyperledger-fabric - 如何持久化 CouchDB 数据?
- javascript - 关于 React、Restful 和 web 服务器