vb.net - "Please Wait" Form not rendering when called -
i writing program lot of processes @ once. keep user thinking program crashed, decided add "please wait" window. works fine except 1 thing: form doesn't render until 30 seconds later. before "please wait until..." text supposed in form white rectangle.
can please tell me how can fix issue? thanks!
edit:
as assumed had crystal ball , read virtual mind, forgot include code >.>;;
here is:
private sub button3_click(sender object, e eventargs) handles button3.click dim pleasewait new testespere centerform(pleasewait) pleasewait.show() dim quantity, quantity_purchased integer dim tracking_usps, lybro_id, recipient_name, order_id, order_item_id, payments_transaction_id, product_id, description, listing_id, sku, batch_id, buyer_email, buyer_name, address_1, address_2, city, state, zip, country, special_comments, upc, status_shipment, loc, tracking, etc, eff string dim total_price, peso, order_price, shipping_price decimal dim purchase_date, payments_date date = 0 datagridview1.rows.count - 1 on error goto netx if isdbnull(datagridview1(0, i).value) exit datagridview1(33, i).value = trackingrequest(replace(datagridview1(32, i).value, "'", "")) lybro_id = datagridview1(0, i).value order_id = datagridview1(1, i).value order_item_id = if(isdbnull(datagridview1(2, i).value), "", datagridview1(2, i).value) payments_date = string.format("{0:yyyy-mm-dd}", datagridview1(3, i).value.tostring) quantity = datagridview1(4, i).value payments_transaction_id = if(isdbnull(datagridview1(5, i).value), "", datagridview1(5, i).value) product_id = datagridview1(6, i).value description = replace(datagridview1(7, i).value, "'", "''") peso = datagridview1(8, i).value listing_id = if(isdbnull(datagridview1(9, i).value), "", datagridview1(9, i).value) sku = datagridview1(10, i).value order_price = datagridview1(11, i).value shipping_price = datagridview1(12, i).value quantity_purchased = datagridview1(13, i).value total_price = datagridview1(14, i).value purchase_date = string.format("{0:yyyy-mm-dd}", datagridview1(15, i).value.tostring ) batch_id = if(isdbnull(datagridview1(16, i).value), "", datagridview1(16, i).value) buyer_email = datagridview1(17, i).value buyer_name = replace(datagridview1(18, i).value, "'", "''") recipient_name = replace(datagridview1(19, i).value, "'", "''") address_1 = replace(datagridview1(20, i).value, "'", "''") address_2 = if(isdbnull(datagridview1(21, i).value), "", datagridview1(21, i).value) city = replace(datagridview1(22, i).value, "'", "''") state = if(isdbnull(datagridview1(23, i).value), "", replace(datagridview1(23, i).value, "'", "''")) zip = datagridview1(24, i).value country = replace(datagridview1(25, i).value, "'", "''") special_comments = if(isdbnull(datagridview1(26, i).value), "", replace(datagridview1(26, i).value, "'", "''")) upc = if(isdbnull(datagridview1(27, i).value), "", datagridview1(27, i).value) etc = if(isdbnull(datagridview1(28, i).value), "", datagridview1(28, i).value) status_shipment = datagridview1(29, i).value loc = replace(datagridview1(30, i).value, "'", "''") eff = if(isdbnull(datagridview1(31, i).value), "", datagridview1(31, i).value) tracking = if(isdbnull(datagridview1(32, i).value), "", datagridview1(32, i).value) tracking_usps = replace(datagridview1(33, i).value, "'", "''") cmd.commandtext = string.format("insert re_orders_con_pesos(re_lybro_id, re_order_id, re_order_item_id, re_payments_date, re_quantity, re_payments_transaction_id, re_product_id, re_description, re_peso, re_listing_id, re_sku, re_order_price, re_shipping_price, re_quantity_purchased, re_total_price, re_purchase_date, re_batch_id, re_buyer_email, re_buyer_name, re_recipient_name, re_ship_address_1, re_ship_address_2, re_ship_city, re_ship_state, re_ship_zip, re_ship_country, re_special_comments, re_upc, re_etc, re_status_shipment, re_location, re_eff, re_tracking, re_tracking_usps, re_status_email, re_status_db) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}', '{21}','{22}','{23}','{24}','{25}','{26}','{27}','{28}','{29}','{30}','{31}','{32}', '{33}','{34}','{35}')", lybro_id, order_id, order_item_id, payments_date, quantity, payments_transaction_id, product_id, description, peso, listing_id, sku, order_price, shipping_price, quantity_purchased, total_price, purchase_date, batch_id, buyer_email, buyer_name, recipient_name, address_1, address_2, city, state, zip, country, special_comments, upc, etc, status_shipment, loc, eff, tracking, tracking_usps, estatus_email_nuevo, estatus_db_nuevo) cmd.execute() netx: next pleasewait.close() beep() end sub
the code button click event handler run on ui's thread. thread supposed handle display only, moving data around on , using store information database. there wrong attempt solve problems, i, , other commenters, propose band-aid: application.doevents. placement below allow ui respond events , update before process each row in datagridview.
also, on error goto deprecated, replaced newer functional equivalent try .. catch
private sub button3_click(sender object, e eventargs) handles button3.click dim pleasewait new testespere centerform(pleasewait) pleasewait.show() ' ... (code removed brevity) = 0 datagridview1.rows.count - 1 ' call allow pleasewait form update application.doevents() try if isdbnull(datagridview1(0, i).value) exit datagridview1(33, i).value = trackingrequest(replace(datagridview1(32, i).value, "'", "")) lybro_id = datagridview1(0, i).value ' ... (code removed brevity) tracking_usps = replace(datagridview1(33, i).value, "'", "''") cmd.commandtext = string.format("insert re_orders_con_pesos(re_lybro_id, re_order_id, re_order_item_id, re_payments_date, re_quantity, re_payments_transaction_id, re_product_id, re_description, re_peso, re_listing_id, re_sku, re_order_price, re_shipping_price, re_quantity_purchased, re_total_price, re_purchase_date, re_batch_id, re_buyer_email, re_buyer_name, re_recipient_name, re_ship_address_1, re_ship_address_2, re_ship_city, re_ship_state, re_ship_zip, re_ship_country, re_special_comments, re_upc, re_etc, re_status_shipment, re_location, re_eff, re_tracking, re_tracking_usps, re_status_email, re_status_db) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}', '{21}','{22}','{23}','{24}','{25}','{26}','{27}','{28}','{29}','{30}','{31}','{32}', '{33}','{34}','{35}')", lybro_id, order_id, order_item_id, payments_date, quantity, payments_transaction_id, product_id, description, peso, listing_id, sku, order_price, shipping_price, quantity_purchased, total_price, purchase_date, batch_id, buyer_email, buyer_name, recipient_name, address_1, address_2, city, state, zip, country, special_comments, upc, etc, status_shipment, loc, eff, tracking, tracking_usps, estatus_email_nuevo, estatus_db_nuevo) cmd.execute() catch ' ignoring exceptions, should handling them! end try next pleasewait.close() beep() end sub under normal circumstance, can't think of reason ever use application.doevents. in case, solution without require significant rewrite application.
Comments
Post a Comment