###前提・実現したいこと
buttonを押すとDataGridViewの数値をChart(グラフ)に代入、グラフを表示させたいです
下記の写真参照
ここのサイトを参照させていただきました
http://blog.hiros-dot.net/?p=2123
最初からデータが分かっていれば上記のようなサイトのプログラムのままでいいとは思うのですが任意のとなると変数に置き換えたりちゃんとした記述でないと上手く反映されないです
やりたいことは
ボタンを押したらDataGridViewの数値をグラフに表示させたい
DataGridViewの値はその時々で変化するのでボタンを押してグラフに表示させる時に可変できるようにしたいです
###手本にさせて頂いているサイト様のプログラム
Public Class Form1 ' フォームロード時の処理 Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load '初期化 Chart1.Series.Clear() 'データの取得 Dim ds As DataSet = GetData() 'Chartコントロールにデータソースを設定 Chart1.DataSource = ds 'Chartコントロールにタイトルを設定 Chart1.Titles.Add("アクセス数とユニークユーザー数") 'グラフの種類,系列,軸の設定 For I As Integer = 1 To ds.Tables(0).Columns.Count - 1 '列名の取得 Dim columnName As String = ds.Tables(0).Columns(I).ColumnName '系列の設定 Chart1.Series.Add(columnName) 'グラフの種類 Chart1.Series(columnName).ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column 'X軸 Chart1.Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString Chart1.ChartAreas(0).AxisX.MajorGrid.Enabled = False Chart1.ChartAreas(0).AxisX.MinorGrid.Enabled = False 'Y軸 Chart1.Series(columnName).YValueMembers = columnName Next 'X軸タイトル Chart1.ChartAreas(0).AxisX.Title = "月" Chart1.DataBind() End Sub ' データの設定 Private Function GetData() As DataSet Dim ds As New DataSet Dim dt As New DataTable Dim dtRow As DataRow '列の作成 dt.Columns.Add("月", Type.GetType("System.String")) dt.Columns.Add("アクセス数", Type.GetType("System.Int32")) dt.Columns.Add("ユニークユーザー数", Type.GetType("System.Int32")) ds.Tables.Add(dt) ★★★'データの追加★★★ dtRow = ds.Tables(0).NewRow dtRow(0) = "2011/01" dtRow(1) = "945" dtRow(2) = "4203" ds.Tables(0).Rows.Add(dtRow) dtRow = ds.Tables(0).NewRow dtRow(0) = "2011/02" dtRow(1) = "1023" dtRow(2) = "3302" ds.Tables(0).Rows.Add(dtRow) dtRow = ds.Tables(0).NewRow dtRow(0) = "2011/03" dtRow(1) = "2121" dtRow(2) = "7065" ds.Tables(0).Rows.Add(dtRow) dtRow = ds.Tables(0).NewRow dtRow(0) = "2011/04" dtRow(1) = "2179" dtRow(2) = "7753" ds.Tables(0).Rows.Add(dtRow) dtRow = ds.Tables(0).NewRow dtRow(0) = "2011/05" dtRow(1) = "2063" dtRow(2) = "6373" ds.Tables(0).Rows.Add(dtRow) dtRow = ds.Tables(0).NewRow dtRow(0) = "2011/06" dtRow(1) = "2107" dtRow(2) = "4210" ds.Tables(0).Rows.Add(dtRow) Return (ds) End Function End Class
###試したこと
上記の星印
★★★'データの追加★★★の
dtRow(0) = "2011/01"
dtRow(1) = "945"
dtRow(2) = "4203"
上記の数値や表記を変えると棒グラフの長さや表示が変わるのが分かるのですが
任意の場所から引っ張ってくる時にそれを変数に置き換えたりして代入したのですが必要な記述が足りないのか記述の仕方が間違っているのかエラーになならないですが反映されないです
他のSUBルーチンから数値情報をもってくるので「Private」ではなく 「Public」にしてみたのですがいかんせんまだまだ初心者の域を脱していないのでどこをどうすればいいかの検討すらわからずこのサイトに質問した次第です
最近少しづつですが変数というものを理解しIF文やDoループなどが読めば少しは分かるようになっては来ましたがまだまだです
どなたかご教授願えたらと思います
よろしくお願い致します
###試したこと2
自分なりに試したこと
(*例なのでデータは三種類ありますがこのプログラムは一種類しか記述してません)
①変数に代入置き換え
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dtRow(0) = DataGridView(0.0).value
dtRow(1) = DataGridView(1.0).value
End Sub
又は
dim AAA as staring = DataGridView(0.0).value '名前
dim BBB as integer = DataGridView(1.0).value '回数
②変数に置き換えワンクッション置く
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dtRow(0) = AAA
dtRow(1) = BBB
End Sub
置き換えたり間接的に置き換えたりしたのですができませんでした
###補足情報(言語/FW/ツール等のバージョンなど)
visual basic 2015
VB.net
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/13 23:10
2017/10/13 23:54
2017/10/24 00:44