0
我TREID添加的項從另一形式 到的ListView其Form 1中方法(一個位於列表視圖)從另一種形式中添加列表視圖項
private void AfterAdd_DoWork(object sender, DoWorkEventArgs e)
{
int[] sizes = SellBL.Product.GetProdStockByID(prodid);
ListViewItem Item = new ListViewItem(prodid.ToString());
Item.SubItems.Add(prodname);
Item.SubItems.Add(ebayid);
Item.SubItems.Add("$" + sellprice);
if (!isnosize)
{
for (int i = 0; i < sizes.Length; ++i)
{
if (sizes[i] == 1)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("In Stock");
subItem.ForeColor = Color.Green;
}
else if (sizes[i] == 0)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("Out Of Stock");
subItem.ForeColor = Color.Red;
}
else if (sizes[i] == 2)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("Less Than 3");
subItem.ForeColor = Color.Orange;
}
else if (sizes[i] == 5)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("Less Than 5");
subItem.ForeColor = Color.Orange;
}
else if (sizes[i] == 10)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("Less Than 10");
subItem.ForeColor = Color.Orange;
}
}
}
else
{
if (sizes[0] == 1)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("In Stock");
subItem.ForeColor = Color.Green;
}
else if (sizes[0] == 0)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("Out Of Stock");
subItem.ForeColor = Color.Red;
}
else if (sizes[0] == 10)
{
Item.UseItemStyleForSubItems = false;
var subItem = Item.SubItems.Add("Few Left");
subItem.ForeColor = Color.Orange;
}
}
ProductListView.Invoke(new MethodInvoker(delegate() { ProductListView.Items.AddRange(new ListViewItem[] { Item }); }));
}
和它的窗口2(從還有我不會添加的產品)
private void backgroundWorkerAddProd_DoWork(object sender, DoWorkEventArgs e)
{
string a = Addprodnametxt.Text.ToString();
string b = Addprodebayidtxt.Text.ToString();
string c = addprodsellpricetxt.Text.ToString();
f1.AfterProductAdded(1, a, b, c, false);
}
我試過這個方法:ProductListView.items.add(item); 但它不工作 當我嘗試這種方法:ProductListView.Invoke(new MethodInvoker(delegate(){ProductListView.Items.AddRange(new ListViewItem [] {Item});})); 我得到這個錯誤: System.InvalidOperationException:'調用或BeginInvoke不能在控件上調用,直到窗口句柄被創建。'
我該如何解決?
感謝
你需要傳遞數據時使用的表格的實例。看到我的兩個表單解決方案:http://stackoverflow.com/questions/34975508/reach-control-from-another-page-asp-net – jdweng