1.之前有excel顯示圖形問題,巳解決( 加入 DoEvents 讓他有時間畫圖)
2.如果在asp.net 廻圈中執行圖表顯示(網頁中),只在最後一筆才能正常顯示,但在程式碼中無法加入DoEvents,在win form中可以加入(巳爬文),但在網頁中不可以加入,不知是否有解?,謝謝!
3.影片如下:
https://drive.google.com/file/d/1zmH4pHZEyNV7hMyMUgobi1wVc0XlxGz4/view?usp=share_link
錯誤訊息如下:
4.程式碼如下:
Protected Sub Button160_Click(sender As Object, e As EventArgs) Handles Button160.Click
Session("charname") = ""
For lobj_dgi As Integer = 0 To topno1.Text - 1 'GridViewone.Rows.Count
Session("charname") = GridViewone.Rows(lobj_dgi).Cells(1).Text
SqlDataSource1.SelectCommand = "SELECT 標準差資訊2.自動編號, 標準差資訊2.名稱, 標準差資訊2.代號, basicinfo.成交價 as 成交價, basicinfo.總量 as 總量,
標準差資訊2.五十日均價 as 均價, 標準差資訊2.均價STD, 標準差資訊2.均價上限 as 均價上限, 標準差資訊2.均價下限 as 均價下限,
標準差資訊2.五十日均量, 標準差資訊2.均量STD, 標準差資訊2.均量上限, 標準差資訊2.均量下限,
標準差資訊2.日期, ROW_NUMBER() OVER (ORDER BY 標準差資訊2.日期) AS X軸
FROM 標準差資訊2 INNER JOIN
basicinfo ON 標準差資訊2.代號 = basicinfo.代號 AND 標準差資訊2.日期 = basicinfo.日期
WHERE (標準差資訊2.日期 >= " & 起日.Text & ") AND (標準差資訊2.名稱 = N'" & Session("charname") & "')
order by X軸 asc"
chart1.Series("Series1").XValueMember = "X軸"
chart1.Series("Series1").YValueMembers = "成交價"
chart1.Series("Series2").XValueMember = "X軸"
chart1.Series("Series2").YValueMembers = "均價"
chart1.Series("Series3").XValueMember = "X軸"
chart1.Series("Series3").YValueMembers = "均價上限"
chart1.Series("Series4").XValueMember = "X軸"
chart1.Series("Series4").YValueMembers = "均價下限"
System.Threading.Thread.Sleep(5000)
Call 表格資料2()
If 不顯示.Checked = True Then
chart1.Series("Series1").IsValueShownAsLabel = True
chart1.Series("Series2").IsValueShownAsLabel = True
chart1.Series("Series3").IsValueShownAsLabel = True
chart1.Series("Series4").IsValueShownAsLabel = True
Else
chart1.Series("Series1").IsValueShownAsLabel = False
chart1.Series("Series2").IsValueShownAsLabel = False
chart1.Series("Series3").IsValueShownAsLabel = False
chart1.Series("Series4").IsValueShownAsLabel = False
End If
chart1.Titles("Title1").Text = GridView3.Rows(1).Cells(1).Text & "(成交價 標準差1.5倍)"
System.Threading.Thread.Sleep(2000)
'chart1.Height = 1500
MaintainScrollPositionOnPostBack = "false"
movetextbox.Focus()
'DoEvents() 無法執行
'DoEvents 無法執行
Next
Response.Write("巳完成")
End Sub
因為在 VB.NET 中,DoEvents 方法不是 HttpApplicationState 類的成員。
DoEvents 方法是 Application 類的成員,用於強制將事件立即執行,而不是排定在下一次進入消息循環時執行。
如果您需要使用 DoEvents 方法,您可以將它改為下面的程式碼:
'DoEvents() 無法執行
'DoEvents 無法執行
System.Windows.Forms.Application.DoEvents()
這個也是會有錯誤訊息:forms 不是 system.windows 的成員
我這個問題不是關於windows form類問題,目前是要在web網頁中執行,所以應該是有關http類,但我找不到正確的寫法
觀念問題?
補充
DoEvents 是VB6或VB.NET的視窗應用程式在用的
ASP.NET WebFom 並不是視窗訊息架構
所以不會有視窗訊息被卡到,得用 DoEvents 去避免視窗回應卡死的問題
基本上在ASP.NET WebFom 的程式裡
控制項的事件只要符合觸發事件的條件,就一定會被執行到
只是時間早晚
只要網頁沒TimeOut的話
目前廻圈內的程式都有執行到,但圖形在最後一筆才看得到更新(無論是執行5筆或10筆都一樣),其他筆雖然有執行但在畫面上並不會出現(目前的重點就是要看到每張圖形),執行也都有完成沒有TimeOut的問題