【C#】Listviewを使ってみる

Visual Studio 2017 C#でListviewに日付と株価を表示してみます。

動作環境

  • Windows 10
  • Visual Studio Community 2017
  • ターゲットフレームワーク .NET Framework 4.6.1

Pan Active Marketにチェックを入れる

「プロジェクト」→「参照の追加」→「COM」を開いて、Pan Active Market Database 1.3にチェックを入れる。

Listview、button、textboxオブジェクトの配置

ツールボックスから、Listview、button、textBoxオブジェクトを配置する

Listviewはプロパティを以下のように設定します。

メンバーを追加し、TextとNameを設定します。終わったら「OK」ボタンを押下します。

Viewをdetailesに設定します。

textBoxのTextを1001に設定します。

プログラムコード

using System;
using System.Collections; // これを追加
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ListViewSample
{
    public partial class Form1 : Form
    {
        private ActiveMarket.Prices pr = new ActiveMarket.Prices();
        private ActiveMarket.Calendar cal = new ActiveMarket.Calendar();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int LatesPos;
            int BeginPos;
            int result;
            int i;
            double data;

            listView1.Items.Clear(); //項目を全てクリア
            pr.Read(textBox1.Text); //四本値と出来高読み込む
            LatesPos = pr.End(); //日付位置の最大値を取得する
            BeginPos = LatesPos - 100 ;
            ListViewItem lstview = new ListViewItem();
            for (i = 1; LatesPos >= BeginPos; BeginPos++, i++)
            {

                result = pr.IsClosed(BeginPos);
                lstview = this.listView1.Items.Add(BeginPos.ToString()); //Noを表示する(日付位置)
                lstview.SubItems.Add(cal.Date(BeginPos).ToString("yyyy/MM/dd")); //日付を表示する

                if (pr.IsClosed(BeginPos) != 0) //指定した日付が休場日かどうかの判定
                {
                    lstview.SubItems.Add("----");
                    lstview.SubItems.Add("休場日");
                }
                else
                {

                    data = pr.Close(BeginPos); //終値を取得する
                    lstview.SubItems.Add(data.ToString());
                    lstview.SubItems.Add("");
                }

            }
            //ListView1のすべての列を自動調節
            listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            lstview = null;
        }
    }
}

実行結果

実行して、button1を押下します。

まとめ

C#のListViewを使って、株価データを表示しました。

タイトルとURLをコピーしました