Yahoo!グループ
ログイン
IDでもっと便利に[ 新規取得 ]



こんにちは、 ゲストさん Yahoo! JAPAN ID取得 - ログイン 
Yahoo!グループ [ 参加 ]
トップ > dotnet-csharp > 掲示板
グループメニュー
  メインページ  
→ 掲示板  
  ブリーフケース  
  フォトアルバム  
  ブックマーク  
 
 
 グループメンバー専用 
  データベース  
  投票  
  グループをPR  

ヘルプ
 ・ グループ 使い方ガイド
 ・ グループ ヘルプ

モバイル版(ベータ)
モバイル版Yahoo!グループ(ベータ版)にアクセス!
URLを
ケータイに送信

旧Yahoo! eグループをお使いのみなさんへ。

 掲示板 掲示板ヘルプ
メッセージ検索:
合計256MB中10.0MB使用(3%)
メッセージ一覧に戻る
3707件中 3632-3647件目を表示 前の一覧 | 次の一覧  [ 最初の一覧 | 最後の一覧 ]
No. 日付順に表示  |  スレッド表示
3632

投稿者: r32plus@y...  <r32plus@y...>
Date: 2012年6月6日(水) 午前0時22分
タイトル: Re: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示

 
こんにちは。

>ネットを見ると、tooltipを使用すればいけそうなのですが、

そのサンプルは MSCHART と ToolTip の組み合わせでしょうか?

ASP.NETでのサンプルですが、参考になるかもしれません。

http://www.atmarkit.co.jp/fdotnet/dotnettips/1016aspcharttooltip/aspcharttooltip.html

----- Original Message -----
From: slater0911 <a.shakagori@j...>
To: dotnet-csharp@y...
Date: 2012/6/4, Mon 19:10
Subject: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示

[dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
---
みなさん こんにちは。
現在、MSCHARTを使用して、折れ線グラフを作成しています。

Excelのように、グラフの要素部分にマウスを持ってきたタイミングで、要素、X,Y軸の値を出したいです。

ネットを見ると、tooltipを使用すればいけそうなのですが、ソースの書き方が分かりませんでした。

どなかた初心者でも分かる感じで教えてもらえないでしょうか?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
//MCCHARTを使用する時に必要
using System.Windows.Forms.DataVisualization.Charting;

namespace 波形表示_CMP_
{
  public partial class Form1 : Form
  {
    /// <summary>
    ///  データを格納する配列
    /// </summary>
    List<diagData> diag = new List<diagData>();

    /// <summary>
    /// 項目名を格納する配列
    /// </summary>
    List<string> column = new List<string>();

    string fileName;

    public Form1()
    {
      InitializeComponent();

      ToolTip tt = new ToolTip();
      tt.SetToolTip(buttonFileSelect, "ボタンを押して、ファイルを選択する");
    }

    // [ファイルの読み込み→グラフ表示までのメソッド]
    private void buttonFileSelect_Click(object sender, EventArgs e)
    {
      if (openFileDialogFile.ShowDialog() == DialogResult.OK)
      {
        fileName = openFileDialogFile.FileName;

        textBox2.Text = fileName;
      }

      // データを取得するメソッド
      dataStorage();

      //グラフ表示
      graphDisplay();
    }

    // [リストボックスで選択したファイルを表示するメソッド]
    private void listBox1_Click(object sender, EventArgs e)
    {
      //リストボックスで選択されたファイル名
      fileName = listBox1.SelectedItem.ToString();

      textBox2.Text = fileName;

      // データを取得するメソッド
      dataStorage();

      //グラフ表示
      graphDisplay();
    }

    /// <summary>
    ///  データを格納するメソッド
    /// </summary>
    private void dataStorage()
    {
      diag.Clear();
      column.Clear();

      //listBox1に同じファイル名が無い場合には、ファイル名を追加
      if (!listBox1.Items.Contains(fileName))
      {
        listBox1.Items.Add(fileName);
      }

      using (FileStream diagStream = File.OpenRead(fileName))
      {
        using (StreamReader diagReader = new StreamReader(diagStream))
        {
          //先頭から2行分を無視する為
          diagReader.ReadLine();
          diagReader.ReadLine();

          //項目名を取得
          for (string text = diagReader.ReadLine(); !String.IsNullOrEmpty(text); text = diagReader.ReadLine())
          {
            //Column 01鐔Column**まで取得
            column.Add(text.Substring(38).Trim());
          }

          // データ直前の行まで無視
          for (int i = 0; i < 5; i++)
          {
            diagReader.ReadLine();
          }

          // データを最終行(今回は5行目まで)まで取得
          while (diagReader.Peek() != -1)
          {
            string[] strData = diagReader.ReadLine().Trim().Split(' ');
            diagData data = new diagData(strData);
            diag.Add(data);

            if (diag.Count == 5) break; 
          }
        }
      }
    }


    /// <summary>
    /// グラフ表示するメソッド
    /// </summary>
    private void graphDisplay()
    {
      //チャートの初期化
      if (chart1.ChartAreas.Count > 0)
        chart1.ChartAreas.Clear();
      if (chart1.Series.Count > 0)
        chart1.Series.Clear();
      if (chart1.Titles.Count > 0)
        chart1.Titles.Clear();

      

      //タイトル
      Title diagTitle = new Title();
      diagTitle.Text = " 波形 (" + Path.GetFileName(fileName) + ")";
      chart1.Titles.Add(diagTitle);

      ChartArea diagChartArea = new ChartArea();



      //Y軸の目盛
      diagChartArea.AxisY.Interval = 1;
      diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
      diagChartArea.AxisY.IsMarginVisible = false;


      diagChartArea.AxisX.LabelStyle.Format = "h:mm:ss.00";

      //チャート領域の範囲を明らかにする為に背景色を付ける
      diagChartArea.BackColor = Color.AntiqueWhite;

      //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)
      chart1.ChartAreas.Add(diagChartArea);

      Series[] diagSeries = new Series[column.Count];

      for (int i = 0; i < column.Count; i++)
      {
        //シリーズ作成
        diagSeries[i] = new Series();

        //グラフの種類
        diagSeries[i].ChartType = SeriesChartType.StepLine;

        //グラフの線の種類
        diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;

        //軸の型
        diagSeries[0].XValueType = ChartValueType.DateTime;
        diagSeries[0].YValueType = ChartValueType.String;

    
      }

      //スクロールバー
      AxisScaleView view = chart1.ChartAreas[0].AxisX.ScaleView;
      view.SmallScrollSize = 1; // 小さなスクロール移動量
      view.Position = 5;    // スクロールバーのつまみの位置
      view.Size = 2000;      // スクロールビューのサイズ(データ数に対する割合で指定する)

      AxisScrollBar sb = chart1.ChartAreas[0].AxisX.ScrollBar;
      sb.Size = SystemInformation.VerticalScrollBarWidth; // スクロールバーの幅
      sb.ButtonStyle = ScrollBarButtonStyles.All; // ボタンのスタイル
      sb.IsPositionedInside = true;        // チャート領域の内部に配置
      sb.BackColor = Color.White;  // 色については AxisScrollBar クラスの LineColor プロパティを参照
      sb.ButtonColor = Color.Silver;
      sb.LineColor = Color.Black;

      //シリーズに値を入れる
      for (int i = 0; i < column.Count; i++)
      {
        for (int j = 0; j < diag.Count; j++)
        {
          //diagSeries[i].Points.AddXY(diagFile[listBox1.SelectedIndex][j].Time, diagFile[listBox1.SelectedIndex][j].listDiag[i]);
          diagSeries[i].Points.AddXY(diag[j].Time, diag[j].listDiag[i]);

          //diagSeries[i].Points.AddXY(diag[j].Time, diag[j].listDiag[i]);
        }
        chart1.Series.Add(diagSeries[i]);
        diagSeries[i].Name = column[i];
        chart1.Series[0].LabelToolTip = "#VALY{N0}";

      }
    }
  }
}

class diagData
  {
    public string Time;
    /// <summary>
    /// 各要素データの配列
    /// </summary>
    public List<string> listDiag = new List<string>();

    public diagData(string[] strData)
    {
      Time = strData[0];

      for (int i = 1; i < strData.Length; i++)
      {
        listDiag.Add(strData[i]);
      }
    }
  }



Group URL  : http://www.egroups.co.jp/group/dotnet-csharp/ 
C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
Help URL  : http://help.yahoo.co.jp/help/jp/groups/ 




---
なお、投稿者は本メールの送信者欄に表示されている方です。

[このメッセージのテキスト以外の内容は省略されています]
3633

投稿者: slater0911  <a.shakagori@j...>
Date: 2012年6月6日(水) 午後11時34分
タイトル: Re: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示

 
こんにちは。返信ありがとうございます。

事前に見ていたネットは、MSCHARTとToolTipの組み合わせでした。
ASP.NETは、まだ手をつけていない領域なので、勉強してみます。


--- In dotnet-csharp@y..., "r32plus@y..." <r32plus@y...> wrote:
> こんにちは。
> 
> >ネットを見ると、tooltipを使用すればいけそうなのですが、
> 
> そのサンプルは MSCHART と ToolTip の組み合わせでしょうか?
> 
> ASP.NETでのサンプルですが、参考になるかもしれません。
> 
> http://www.atmarkit.co.jp/fdotnet/dotnettips/1016aspcharttooltip/aspcharttooltip.html
> 
> ----- Original Message -----
> From: slater0911 <a.shakagori@j...>
> To: dotnet-csharp@y...
> Date: 2012/6/4, Mon 19:10
> Subject: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示
> 
> [dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
> ---
> みなさん こんにちは。
> 現在、MSCHARTを使用して、折れ線グラフを作成しています。
> 
> Excelのように、グラフの要素部分にマウスを持ってきたタイミングで、要素、X,Y軸の値を出したいです。
> 
> ネットを見ると、tooltipを使用すればいけそうなのですが、ソースの書き方が分かりませんでした。
> 
> どなかた初心者でも分かる感じで教えてもらえないでしょうか?
> 
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Linq;
> using System.Text;
> using System.Windows.Forms;
> using System.IO;
> //MCCHARTを使用する時に必要
> using System.Windows.Forms.DataVisualization.Charting;
> 
> namespace 波形表示_CMP_
> {
>   public partial class Form1 : Form
>   {
>     /// <summary>
>     ///  データを格納する配列
>     /// </summary>
>     List<diagData> diag = new List<diagData>();
> 
>     /// <summary>
>     /// 項目名を格納する配列
>     /// </summary>
>     List<string> column = new List<string>();
> 
>     string fileName;
> 
>     public Form1()
>     {
>       InitializeComponent();
> 
>       ToolTip tt = new ToolTip();
>       tt.SetToolTip(buttonFileSelect, "ボタンを押して、ファイルを選択する");
>     }
> 
>     // [ファイルの読み込み→グラフ表示までのメソッド]
>     private void buttonFileSelect_Click(object sender, EventArgs e)
>     {
>       if (openFileDialogFile.ShowDialog() == DialogResult.OK)
>       {
>         fileName = openFileDialogFile.FileName;
> 
>         textBox2.Text = fileName;
>       }
> 
>       // データを取得するメソッド
>       dataStorage();
> 
>       //グラフ表示
>       graphDisplay();
>     }
> 
>     // [リストボックスで選択したファイルを表示するメソッド]
>     private void listBox1_Click(object sender, EventArgs e)
>     {
>       //リストボックスで選択されたファイル名
>       fileName = listBox1.SelectedItem.ToString();
> 
>       textBox2.Text = fileName;
> 
>       // データを取得するメソッド
>       dataStorage();
> 
>       //グラフ表示
>       graphDisplay();
>     }
> 
>     /// <summary>
>     ///  データを格納するメソッド
>     /// </summary>
>     private void dataStorage()
>     {
>       diag.Clear();
>       column.Clear();
> 
>       //listBox1に同じファイル名が無い場合には、ファイル名を追加
>       if (!listBox1.Items.Contains(fileName))
>       {
>         listBox1.Items.Add(fileName);
>       }
> 
>       using (FileStream diagStream = File.OpenRead(fileName))
>       {
>         using (StreamReader diagReader = new StreamReader(diagStream))
>         {
>           //先頭から2行分を無視する為
>           diagReader.ReadLine();
>           diagReader.ReadLine();
> 
>           //項目名を取得
>           for (string text = diagReader.ReadLine(); !String.IsNullOrEmpty(text); text = diagReader.ReadLine())
>           {
>             //Column 01鐔&#65533;Column**まで取得
>             column.Add(text.Substring(38).Trim());
>           }
> 
>           // データ直前の行まで無視
>           for (int i = 0; i < 5; i++)
>           {
>             diagReader.ReadLine();
>           }
> 
>           // データを最終行(今回は5行目まで)まで取得
>           while (diagReader.Peek() != -1)
>           {
>             string[] strData = diagReader.ReadLine().Trim().Split(' ');
>             diagData data = new diagData(strData);
>             diag.Add(data);
> 
>             if (diag.Count == 5) break; 
>           }
>         }
>       }
>     }
> 
> 
>     /// <summary>
>     /// グラフ表示するメソッド
>     /// </summary>
>     private void graphDisplay()
>     {
>       //チャートの初期化
>       if (chart1.ChartAreas.Count > 0)
>         chart1.ChartAreas.Clear();
>       if (chart1.Series.Count > 0)
>         chart1.Series.Clear();
>       if (chart1.Titles.Count > 0)
>         chart1.Titles.Clear();
> 
>       
> 
>       //タイトル
>       Title diagTitle = new Title();
>       diagTitle.Text = " 波形 (" + Path.GetFileName(fileName) + ")";
>       chart1.Titles.Add(diagTitle);
> 
>       ChartArea diagChartArea = new ChartArea();
> 
> 
> 
>       //Y軸の目盛
>       diagChartArea.AxisY.Interval = 1;
>       diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
>       diagChartArea.AxisY.IsMarginVisible = false;
> 
> 
>       diagChartArea.AxisX.LabelStyle.Format = "h:mm:ss.00";
> 
>       //チャート領域の範囲を明らかにする為に背景色を付ける
>       diagChartArea.BackColor = Color.AntiqueWhite;
> 
>       //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)
>       chart1.ChartAreas.Add(diagChartArea);
> 
>       Series[] diagSeries = new Series[column.Count];
> 
>       for (int i = 0; i < column.Count; i++)
>       {
>         //シリーズ作成
>         diagSeries[i] = new Series();
> 
>         //グラフの種類
>         diagSeries[i].ChartType = SeriesChartType.StepLine;
> 
>         //グラフの線の種類
>         diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;
> 
>         //軸の型
>         diagSeries[0].XValueType = ChartValueType.DateTime;
>         diagSeries[0].YValueType = ChartValueType.String;
> 
>     
>       }
> 
>       //スクロールバー
>       AxisScaleView view = chart1.ChartAreas[0].AxisX.ScaleView;
>       view.SmallScrollSize = 1; // 小さなスクロール移動量
>       view.Position = 5;    // スクロールバーのつまみの位置
>       view.Size = 2000;      // スクロールビューのサイズ(データ数に対する割合で指定する)
> 
>       AxisScrollBar sb = chart1.ChartAreas[0].AxisX.ScrollBar;
>       sb.Size = SystemInformation.VerticalScrollBarWidth; // スクロールバーの幅
>       sb.ButtonStyle = ScrollBarButtonStyles.All; // ボタンのスタイル
>       sb.IsPositionedInside = true;        // チャート領域の内部に配置
>       sb.BackColor = Color.White;  // 色については AxisScrollBar クラスの LineColor プロパティを参照
>       sb.ButtonColor = Color.Silver;
>       sb.LineColor = Color.Black;
> 
>       //シリーズに値を入れる
>       for (int i = 0; i < column.Count; i++)
>       {
>         for (int j = 0; j < diag.Count; j++)
>         {
>           //diagSeries[i].Points.AddXY(diagFile[listBox1.SelectedIndex][j].Time, diagFile[listBox1.SelectedIndex][j].listDiag[i]);
>           diagSeries[i].Points.AddXY(diag[j].Time, diag[j].listDiag[i]);
> 
>           //diagSeries[i].Points.AddXY(diag[j].Time, diag[j].listDiag[i]);
>         }
>         chart1.Series.Add(diagSeries[i]);
>         diagSeries[i].Name = column[i];
>         chart1.Series[0].LabelToolTip = "#VALY{N0}";
> 
>       }
>     }
>   }
> }
> 
> class diagData
>   {
>     public string Time;
>     /// <summary>
>     /// 各要素データの配列
>     /// </summary>
>     public List<string> listDiag = new List<string>();
> 
>     public diagData(string[] strData)
>     {
>       Time = strData[0];
> 
>       for (int i = 1; i < strData.Length; i++)
>       {
>         listDiag.Add(strData[i]);
>       }
>     }
>   }
> 
> 
> 
> Group URL  : http://www.egroups.co.jp/group/dotnet-csharp/ 
> C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
> Help URL  : http://help.yahoo.co.jp/help/jp/groups/ 
> 
> 
> 
> 
> ---
> なお、投稿者は本メールの送信者欄に表示されている方です。
> 
> [このメッセージのテキスト以外の内容は省略されています]
3634

投稿者: r32plus@y...  <r32plus@y...>
Date: 2012年6月7日(木) 午前0時19分
タイトル: Re: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示

 
こんにちは。

>事前に見ていたネットは、MSCHARTとToolTipの組み合わせでした。

その組み合わせは試してみましたか?

>ASP.NETは、まだ手をつけていない領域なので、勉強してみます。

その記事が参考になりませんか、ということです。

----- Original Message -----
>From: slater0911 <a.shakagori@j...>
>To: dotnet-csharp@y...
>Date: 2012/6/7, Thu 08:34
>Subject: Re: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示
>
>[dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
>---
>こんにちは。返信ありがとうございます。
>
>事前に見ていたネットは、MSCHARTとToolTipの組み合わせでした。
>ASP.NETは、まだ手をつけていない領域なので、勉強してみます。
>
>
>--- In dotnet-csharp@y..., "r32plus@y..." <r32plus@y...> wrote:
>> こんにちは。
>> 
>> >ネットを見ると、tooltipを使用すればいけそうなのですが、
>> 
>> そのサンプルは MSCHART と ToolTip の組み合わせでしょうか?
>> 
>> ASP.NETでのサンプルですが、参考になるかもしれません。
>> 
>> http://www.atmarkit.co.jp/fdotnet/dotnettips/1016aspcharttooltip/aspcharttooltip.html
>> 
>> ----- Original Message -----
>> From: slater0911 <a.shakagori@j...>
>> To: dotnet-csharp@y...
>> Date: 2012/6/4, Mon 19:10
>> Subject: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示
>> 
>> [dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
>> ---
>> みなさん こんにちは。
>> 現在、MSCHARTを使用して、折れ線グラフを作成しています。
>> 
>> Excelのように、グラフの要素部分にマウスを持ってきたタイミングで、要素、X,Y軸の値を出したいです。
>> 
>> ネットを見ると、tooltipを使用すればいけそうなのですが、ソースの書き方が分かりませんでした。
>> 
>> どなかた初心者でも分かる感じで教えてもらえないでしょうか?
>> 
>> using System;
>> using System.Collections.Generic;
>> using System.ComponentModel;
>> using System.Data;
>> using System.Drawing;
>> using System.Linq;
>> using System.Text;
>> using System.Windows.Forms;
>> using System.IO;
>> //MCCHARTを使用する時に必要
>> using System.Windows.Forms.DataVisualization.Charting;
>> 
>> namespace 波形表示_CMP_
>> {
>>  public partial class Form1 : Form
>>  {
>>   /// <summary>
>>   ///  データを格納する配列
>>   /// </summary>
>>   List<diagData> diag = new List<diagData>();
>> 
>>   /// <summary>
>>   /// 項目名を格納する配列
>>   /// </summary>
>>   List<string> column = new List<string>();
>> 
>>   string fileName;
>> 
>>   public Form1()
>>   {
>>    InitializeComponent();
>> 
>>    ToolTip tt = new ToolTip();
>>    tt.SetToolTip(buttonFileSelect, "ボタンを押して、ファイルを選択する");
>>   }
>> 
>>   // [ファイルの読み込み→グラフ表示までのメソッド]
>>   private void buttonFileSelect_Click(object sender, EventArgs e)
>>   {
>>    if (openFileDialogFile.ShowDialog() == DialogResult.OK)
>>    {
>>     fileName = openFileDialogFile.FileName;
>> 
>>     textBox2.Text = fileName;
>>    }
>> 
>>    // データを取得するメソッド
>>    dataStorage();
>> 
>>    //グラフ表示
>>    graphDisplay();
>>   }
>> 
>>   // [リストボックスで選択したファイルを表示するメソッド]
>>   private void listBox1_Click(object sender, EventArgs e)
>>   {
>>    //リストボックスで選択されたファイル名
>>    fileName = listBox1.SelectedItem.ToString();
>> 
>>    textBox2.Text = fileName;
>> 
>>    // データを取得するメソッド
>>    dataStorage();
>> 
>>    //グラフ表示
>>    graphDisplay();
>>   }
>> 
>>   /// <summary>
>>   ///  データを格納するメソッド
>>   /// </summary>
>>   private void dataStorage()
>>   {
>>    diag.Clear();
>>    column.Clear();
>> 
>>    //listBox1に同じファイル名が無い場合には、ファイル名を追加
>>    if (!listBox1.Items.Contains(fileName))
>>    {
>>     listBox1.Items.Add(fileName);
>>    }
>> 
>>    using (FileStream diagStream = File.OpenRead(fileName))
>>    {
>>     using (StreamReader diagReader = new StreamReader(diagStream))
>>     {
>>      //先頭から2行分を無視する為
>>      diagReader.ReadLine();
>>      diagReader.ReadLine();
>> 
>>      //項目名を取得
>>      for (string text = diagReader.ReadLine(); !String.IsNullOrEmpty(text); text = diagReader.ReadLine())
>>      {
>>       //Column 01鐃Column**まで取得
>>       column.Add(text.Substring(38).Trim());
>>      }
>> 
>>      // データ直前の行まで無視
>>      for (int i = 0; i < 5; i++)
>>      {
>>       diagReader.ReadLine();
>>      }
>> 
>>      // データを最終行(今回は5行目まで)まで取得
>>      while (diagReader.Peek() != -1)
>>      {
>>       string[] strData = diagReader.ReadLine().Trim().Split(' ');
>>       diagData data = new diagData(strData);
>>       diag.Add(data);
>> 
>>       if (diag.Count == 5) break; 
>>      }
>>     }
>>    }
>>   }
>> 
>> 
>>   /// <summary>
>>   /// グラフ表示するメソッド
>>   /// </summary>
>>   private void graphDisplay()
>>   {
>>    //チャートの初期化
>>    if (chart1.ChartAreas.Count > 0)
>>     chart1.ChartAreas.Clear();
>>    if (chart1.Series.Count > 0)
>>     chart1.Series.Clear();
>>    if (chart1.Titles.Count > 0)
>>     chart1.Titles.Clear();
>> 
>>   
>> 
>>    //タイトル
>>    Title diagTitle = new Title();
>>    diagTitle.Text = " 波形 (" + Path.GetFileName(fileName) + ")";
>>    chart1.Titles.Add(diagTitle);
>> 
>>    ChartArea diagChartArea = new ChartArea();
>> 
>> 
>> 
>>    //Y軸の目盛
>>    diagChartArea.AxisY.Interval = 1;
>>    diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
>>    diagChartArea.AxisY.IsMarginVisible = false;
>> 
>> 
>>    diagChartArea.AxisX.LabelStyle.Format = "h:mm:ss.00";
>> 
>>    //チャート領域の範囲を明らかにする為に背景色を付ける
>>    diagChartArea.BackColor = Color.AntiqueWhite;
>> 
>>    //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)
>>    chart1.ChartAreas.Add(diagChartArea);
>> 
>>    Series[] diagSeries = new Series[column.Count];
>> 
>>    for (int i = 0; i < column.Count; i++)
>>    {
>>     //シリーズ作成
>>     diagSeries[i] = new Series();
>> 
>>     //グラフの種類
>>     diagSeries[i].ChartType = SeriesChartType.StepLine;
>> 
>>     //グラフの線の種類
>>     diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;
>> 
>>     //軸の型
>>     diagSeries[0].XValueType = ChartValueType.DateTime;
>>     diagSeries[0].YValueType = ChartValueType.String;
>> 
>>  
>>    }
>> 
>>    //スクロールバー
>>    AxisScaleView view = chart1.ChartAreas[0].AxisX.ScaleView;
>>    view.SmallScrollSize = 1; // 小さなスクロール移動量
>>    view.Position = 5;  // スクロールバーのつまみの位置
>>    view.Size = 2000;   // スクロールビューのサイズ(データ数に対する割合で指定する)
>> 
>>    AxisScrollBar sb = chart1.ChartAreas[0].AxisX.ScrollBar;
>>    sb.Size = SystemInformation.VerticalScrollBarWidth; // スクロールバーの幅
>>    sb.ButtonStyle = ScrollBarButtonStyles.All; // ボタンのスタイル
>>    sb.IsPositionedInside = true;    // チャート領域の内部に配置
>>    sb.BackColor = Color.White; // 色については AxisScrollBar クラスの LineColor プロパティを参照
>>    sb.ButtonColor = Color.Silver;
>>    sb.LineColor = Color.Black;
>> 
>>    //シリーズに値を入れる
>>    for (int i = 0; i < column.Count; i++)
>>    {
>>     for (int j = 0; j < diag.Count; j++)
>>     {
>>      //diagSeries[i].Points.AddXY(diagFile[listBox1.SelectedIndex][j].Time, diagFile[listBox1.SelectedIndex][j].listDiag[i]);
>>      diagSeries[i].Points.AddXY(diag[j].Time, diag[j].listDiag[i]);
>> 
>>      //diagSeries[i].Points.AddXY(diag[j].Time, diag[j].listDiag[i]);
>>     }
>>     chart1.Series.Add(diagSeries[i]);
>>     diagSeries[i].Name = column[i];
>>     chart1.Series[0].LabelToolTip = "#VALY{N0}";
>> 
>>    }
>>   }
>>  }
>> }
>> 
>> class diagData
>>  {
>>   public string Time;
>>   /// <summary>
>>   /// 各要素データの配列
>>   /// </summary>
>>   public List<string> listDiag = new List<string>();
>> 
>>   public diagData(string[] strData)
>>   {
>>    Time = strData[0];
>> 
>>    for (int i = 1; i < strData.Length; i++)
>>    {
>>     listDiag.Add(strData[i]);
>>    }
>>   }
>>  }
>> 
>> 
>> 
>> Group URL : http://www.egroups.co.jp/group/dotnet-csharp/ 
>> C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
>> Help URL : http://help.yahoo.co.jp/help/jp/groups/ 
>> 
>> 
>> 
>> 
>> ---
>> なお、投稿者は本メールの送信者欄に表示されている方です。
>> 
>> [このメッセージのテキスト以外の内容は省略されています]
>
>
>Group URL  : http://www.egroups.co.jp/group/dotnet-csharp/ 
>C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
>Help URL  : http://help.yahoo.co.jp/help/jp/groups/ 
>
>
>
>
>---
>なお、投稿者は本メールの送信者欄に表示されている方です。
>
>
>
>

[このメッセージのテキスト以外の内容は省略されています]
3636

投稿者: !(^^)!ふ〜'  <ans@e...>
Date: 2012年6月7日(木) 午後0時52分
タイトル: RE: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示

 
こんにちは、私も少し勉強してみました。!(^^)!ふ〜です。


>事前に見ていたネットは、MSCHARTとToolTipの組み合わせでした。
>ASP.NETは、まだ手をつけていない領域なので、勉強してみます。

// マウスで値を表示する

chart1.Series[i].ToolTip = "データ値(X=#VALX Y=#VALY)";

 

この1行を追加するだけで、マウスをグラフに合わせると値が表示されました。

 

□データを作ってみました。

-------------------------------------------------------------------------------------------

 

 

line1

line2

line3

line4

line5

 

 

 

 

 

Time  Col1            Col2       Col3       Col4       Col5

0.0          1.0          5.0          10.0        15.0        20.0

30.0        2.0          6.0          11.0        16.0        23.0

60.0        4.0          5.0          12.0        17.0        22.0

90.0        5.0          6.0          9.0          18.0        20.0

120.0      4.0          7.0          8.0          19.0        21.3

150.0      3.0          8.0          9.0          10.0        22.0

180.0      8.0          9.0          10.0        15.0        18.0

210.0      5.0          7.0          11.0        14.0        19.0

 

 

グラフの種類と時間軸を分かり易くしてあります。他の部分は同じです。

□修正ソースです。

 

       /// <summary>

        /// グラフ表示するメソッド

        /// </summary>

        private void graphDisplay()

        {

            //チャートの初期化

            if (chart1.ChartAreas.Count > 0)

                chart1.ChartAreas.Clear();

            if (chart1.Series.Count > 0)

                chart1.Series.Clear();

            if (chart1.Titles.Count > 0)

                chart1.Titles.Clear();

 

            //タイトル

            Title diagTitle = new Title();

            diagTitle.Text = " 波形 (" + Path.GetFileName(fileName) + ")";

            chart1.Titles.Add(diagTitle);

 

            ChartArea diagChartArea = new ChartArea();

 

            //Y軸の目盛

            diagChartArea.AxisY.Interval = 1;

            diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;

            diagChartArea.AxisY.IsMarginVisible = false;

 

            //X軸の目盛

            diagChartArea.AxisX.LabelStyle.Interval = 0;

            diagChartArea.AxisX.MajorGrid.Interval = 0;

            diagChartArea.AxisX.MajorTickMark.Interval = 1;

 

            //チャート領域の範囲を明らかにする為に背景色を付ける

            diagChartArea.BackColor = Color.AntiqueWhite;

 

            //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)

            chart1.ChartAreas.Add(diagChartArea);

 

            Series[] diagSeries = new Series[column.Count];

 

            for (int i = 0; i < column.Count; i++)

            {

                //シリーズ作成

                diagSeries[i] = new Series();

 

                //グラフの種類

                diagSeries[i].ChartType = SeriesChartType.FastLine;

 

                //グラフの線の種類

                diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;

 

                //軸の型

                diagSeries[i].XValueType = ChartValueType.Double;

                diagSeries[i].YValueType = ChartValueType.String;

            }

 

            //スクロールバー

            AxisScaleView view = chart1.ChartAreas[0].AxisX.ScaleView;

            view.SmallScrollSize = 0; // 小さなスクロール移動量

            view.Position = 0;        // スクロールバーのつまみの位置

            view.Size = 5;           // スクロールビューのサイズ(データ数に対する割合で指定する)

 

            AxisScrollBar sb = chart1.ChartAreas[0].AxisX.ScrollBar;

            sb.Size = SystemInformation.VerticalScrollBarWidth; // スクロールバーの幅

            sb.ButtonStyle = ScrollBarButtonStyles.All; // ボタンのスタイル

            sb.IsPositionedInside = true;               // チャート領域の内部に配置

            sb.BackColor = Color.White;   // 色については AxisScrollBar クラスの LineColor プロパティを参照

            sb.ButtonColor = Color.Silver;

            sb.LineColor = Color.Black;

 

            //シリーズに値を入れる

            for (int i = 0; i < column.Count; i++)

            {

                for (int j = 0; j < diag.Count ; j++)

                {

                    diagSeries[i].Points.AddXY(Convert.ToDouble(diag[j].Time), diag[j].listDiag[i]);

                }

                chart1.Series.Add(diagSeries[i]);

                diagSeries[i].Name = column[i];

                // マウスで値を表示する

                chart1.Series[i].ToolTip = "データ値(X=#VALX Y=#VALY)";

            }

        }

    }

以上

 



[このメッセージのテキスト以外の内容は省略されています]
3637

投稿者: slater0911  <a.shakagori@j...>
Date: 2012年6月8日(金) 午前0時02分
タイトル: Re: [.NET-C#] MSCHARTの折れ線グラフにマウスを当てて値を表示

 
こんにちは。 希望の表示ができました!!
大変感謝です。

labeltooltipじゃなくて、tooltipを使用しないといけないんですね。

今後とも宜しくお願いします。



--- In dotnet-csharp@y..., !(^^)!ふ〜' <ans@e...> wrote:
> こんにちは、私も少し勉強してみました。!(^^)!ふ〜です。
> 
> 
> >事前に見ていたネットは、MSCHARTとToolTipの組み合わせでした。
> >ASP.NETは、まだ手をつけていない領域なので、勉強してみます。
> 
> // マウスで値を表示する
> 
> chart1.Series[i].ToolTip = "データ値(X=#VALX Y=#VALY)";
> 
>  
> 
> この1行を追加するだけで、マウスをグラフに合わせると値が表示されました。
> 
>  
> 
> □データを作ってみました。
> 
> -------------------------------------------------------------------------------------------
> 
>  
> 
>  
> 
> line1
> 
> line2
> 
> line3
> 
> line4
> 
> line5
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> Time  Col1            Col2       Col3       Col4       Col5
> 
> 0.0          1.0          5.0          10.0        15.0        20.0
> 
> 30.0        2.0          6.0          11.0        16.0        23.0
> 
> 60.0        4.0          5.0          12.0        17.0        22.0
> 
> 90.0        5.0          6.0          9.0          18.0        20.0
> 
> 120.0      4.0          7.0          8.0          19.0        21.3
> 
> 150.0      3.0          8.0          9.0          10.0        22.0
> 
> 180.0      8.0          9.0          10.0        15.0        18.0
> 
> 210.0      5.0          7.0          11.0        14.0        19.0
> 
>  
> 
>  
> 
> グラフの種類と時間軸を分かり易くしてあります。他の部分は同じです。
> 
> □修正ソースです。
> 
>  
> 
>        /// <summary>
> 
>         /// グラフ表示するメソッド
> 
>         /// </summary>
> 
>         private void graphDisplay()
> 
>         {
> 
>             //チャートの初期化
> 
>             if (chart1.ChartAreas.Count > 0)
> 
>                 chart1.ChartAreas.Clear();
> 
>             if (chart1.Series.Count > 0)
> 
>                 chart1.Series.Clear();
> 
>             if (chart1.Titles.Count > 0)
> 
>                 chart1.Titles.Clear();
> 
>  
> 
>             //タイトル
> 
>             Title diagTitle = new Title();
> 
>             diagTitle.Text = " 波形 (" + Path.GetFileName(fileName) + ")";
> 
>             chart1.Titles.Add(diagTitle);
> 
>  
> 
>             ChartArea diagChartArea = new ChartArea();
> 
>  
> 
>             //Y軸の目盛
> 
>             diagChartArea.AxisY.Interval = 1;
> 
>             diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
> 
>             diagChartArea.AxisY.IsMarginVisible = false;
> 
>  
> 
>             //X軸の目盛
> 
>             diagChartArea.AxisX.LabelStyle.Interval = 0;
> 
>             diagChartArea.AxisX.MajorGrid.Interval = 0;
> 
>             diagChartArea.AxisX.MajorTickMark.Interval = 1;
> 
>  
> 
>             //チャート領域の範囲を明らかにする為に背景色を付ける
> 
>             diagChartArea.BackColor = Color.AntiqueWhite;
> 
>  
> 
>             //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)
> 
>             chart1.ChartAreas.Add(diagChartArea);
> 
>  
> 
>             Series[] diagSeries = new Series[column.Count];
> 
>  
> 
>             for (int i = 0; i < column.Count; i++)
> 
>             {
> 
>                 //シリーズ作成
> 
>                 diagSeries[i] = new Series();
> 
>  
> 
>                 //グラフの種類
> 
>                 diagSeries[i].ChartType = SeriesChartType.FastLine;
> 
>  
> 
>                 //グラフの線の種類
> 
>                 diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;
> 
>  
> 
>                 //軸の型
> 
>                 diagSeries[i].XValueType = ChartValueType.Double;
> 
>                 diagSeries[i].YValueType = ChartValueType.String;
> 
>             }
> 
>  
> 
>             //スクロールバー
> 
>             AxisScaleView view = chart1.ChartAreas[0].AxisX.ScaleView;
> 
>             view.SmallScrollSize = 0; // 小さなスクロール移動量
> 
>             view.Position = 0;        // スクロールバーのつまみの位置
> 
>             view.Size = 5;           // スクロールビューのサイズ(データ数に対する割合で指定する)
> 
>  
> 
>             AxisScrollBar sb = chart1.ChartAreas[0].AxisX.ScrollBar;
> 
>             sb.Size = SystemInformation.VerticalScrollBarWidth; // スクロールバーの幅
> 
>             sb.ButtonStyle = ScrollBarButtonStyles.All; // ボタンのスタイル
> 
>             sb.IsPositionedInside = true;               // チャート領域の内部に配置
> 
>             sb.BackColor = Color.White;   // 色については AxisScrollBar クラスの LineColor プロパティを参照
> 
>             sb.ButtonColor = Color.Silver;
> 
>             sb.LineColor = Color.Black;
> 
>  
> 
>             //シリーズに値を入れる
> 
>             for (int i = 0; i < column.Count; i++)
> 
>             {
> 
>                 for (int j = 0; j < diag.Count ; j++)
> 
>                 {
> 
>                     diagSeries[i].Points.AddXY(Convert.ToDouble(diag[j].Time), diag[j].listDiag[i]);
> 
>                 }
> 
>                 chart1.Series.Add(diagSeries[i]);
> 
>                 diagSeries[i].Name = column[i];
> 
>                 // マウスで値を表示する
> 
>                 chart1.Series[i].ToolTip = "データ値(X=#VALX Y=#VALY)";
> 
>             }
> 
>         }
> 
>     }
> 
> 以上
> 
>  
> 
> 
> 
> [このメッセージのテキスト以外の内容は省略されています]
3638

投稿者: 金正日  <obaq1995@y...>
Date: 2012年6月19日(火) 午前6時50分
タイトル: 回線速度の測定方法に関して

 
皆様、こんにちわ。

いつもお世話になっております。


回線速度の測定に付いて質問なのですが、
以下のコードで回線速度の測定を行うアプリケーションを作成
したのですが、いまいち自分の計算に自信が持てません。

概要としては、ホームページから画像やPDF等をダウンロードし、
ダウンロードに要した時間から秒間のバイト数を計算しています。
以下のコードで問題無いでしょうか?

----------------------------
以下コード

----------------------------
System.Net.WebClient wc = new System.Net.WebClient();
Stopwatch sw = new Stopwatch();
byte[] DownLoad_Data = new byte[10];//ダウンロードしたファイルを格納する。

Decimal TotalDownLoadSec = 0;      //10回ダウンロードするのにかかった時間(ミリ秒)
Decimal AveDownLoadSec = 0;       //1ダウンロードにかかる平均時間(ミリ秒)

Decimal Answer = 0;              //回線速度(Mbps)


//10回ダウンロードを行い、そのかかった時間を計測する。

for (int i = 0; i < 10; i++)
{
   sw.Start();
    DownLoad_Data = wc.DownloadData(uri);
   sw.Stop();
   TotalDownLoadSec += Convert.ToDecimal(sw.ElapsedMilliseconds);
}
wc.Dispose();

//1ダウンロードにかかる時間の平均
AveDownLoadSec = TotalDownLoadSec / 10;

//回線速度 = 1秒 ÷ 1ファイルにかかるダウンロード時間 × ファイルのバイト数
//         × バイトからビットへ変換 ÷ Kbpsに変換 ÷ Mbpsに変換

Answer = (1000 / AveDownLoadSec) * DownLoad_Data.LongLength * 8 / 1024 / 1024;

----------- ここまで -------------------
3639

投稿者: slater0911  <a.shakagori@j...>
Date: 2012年6月25日(月) 午前1時51分
タイトル: MSChart 最新のデータをグラフに表示

 
みなさん こんにちは。
定期的にデータを取得し、グラフ表示するものを作成しています。

現状は、グラフ表示はできるのですが、最新の5個のデータをグラフに表示するようにしたいのですが、方法が分からない為、どなたか教えて頂けないでしょうか?





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//MCCHARTを使用する時に必要
using System.Windows.Forms.DataVisualization.Charting;

namespace JMTech.jp.JLogger.Gui
{
    public partial class PolGraph : Form
    {
        public PolGraph()
        {
            InitializeComponent();
        }

        Series[] diagSeries = new Series[3];

        List<string> datetimeList1 = new List<string>();
        List<string> PolishList1 = new List<string>();
        List<string> datetimeList2 = new List<string>();
        List<string> PolishList2 = new List<string>(); 
        List<string> datetimeList3 = new List<string>();
        List<string> PolishList3 = new List<string>();

        private delegate void UpdateGridDelegate2();
        private delegate void SetRowDataDelegate2(List<string> LogString);
        public void PolDisp(List<string> LogString)
        {
            if (this.InvokeRequired == true)
            {
                SetRowDataDelegate2 method = new SetRowDataDelegate2(PolDisp);
                IAsyncResult ar = this.BeginInvoke(method, LogString);
                ar.AsyncWaitHandle.WaitOne();
                return;
            }

            //チャートの初期化
            if (chart1.ChartAreas.Count > 0)
                chart1.ChartAreas.Clear();
            if (chart1.Series.Count > 0)
                chart1.Series.Clear();
            if (chart1.Titles.Count > 0)
                chart1.Titles.Clear();

            //タイトル
            Title diagTitle = new Title();
            diagTitle.Text = "MainStep PolishTime";
            chart1.Titles.Add(diagTitle);

            ChartArea diagChartArea = new ChartArea();

            //Y軸の目盛
            diagChartArea.AxisY.Interval = 1;
            diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
            diagChartArea.AxisY.IsMarginVisible = false;
            diagChartArea.AxisY.Maximum = 10;
            diagChartArea.AxisY.Minimum = 0;

            diagChartArea.AxisX.Maximum = 5;
            diagChartArea.AxisX.Minimum = 0;

            //チャート領域の範囲を明らかにする為に背景色を付ける
            diagChartArea.BackColor = Color.AntiqueWhite;

            //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)
            chart1.ChartAreas.Add(diagChartArea);

            for (int i = 0; i < 3; i++)
            {
                //シリーズ作成
                diagSeries[i] = new Series();

                //グラフの種類
                diagSeries[i].ChartType = SeriesChartType.StepLine;

                //グラフの線の種類
                diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;

                //軸の型
                diagSeries[0].XValueType = ChartValueType.String;
                diagSeries[0].YValueType = ChartValueType.String;
            }

            switch(LogString[3])
            {
                case "1" :
                    datetimeList1.Add(LogString[0]);
                    PolishList1.Add(LogString[5]);
                    break;
                case "2" :
                    datetimeList2.Add(LogString[0]);
                    PolishList2.Add(LogString[5]);
                    break;
                case "3" :
                    datetimeList3.Add(LogString[0]);
                    PolishList3.Add(LogString[5]);
                    break;
            }

            for ( int i = 0; i < datetimeList1.Count; i++)
            {
                diagSeries[0].Points.AddXY(datetimeList1[i], PolishList1[i]);
            }
            chart1.Series.Add(diagSeries[0]);

            for (int i = 0; i < datetimeList2.Count; i++)
            {
                diagSeries[1].Points.AddXY(datetimeList2[i], PolishList2[i]);
            }
            chart1.Series.Add(diagSeries[1]);

            for (int i = 0; i < datetimeList3.Count; i++)
            {
                diagSeries[2].Points.AddXY(datetimeList3[i], PolishList3[i]);
            }
            chart1.Series.Add(diagSeries[2]);

            diagSeries[0].Name = "Name1";
            diagSeries[1].Name = "Name2";
            diagSeries[2].Name = "Name3";
                                    
        }
    }
}
3640

投稿者: fudano  <fudano@e...>
Date: 2012年6月25日(月) 午前9時22分
タイトル: RE: [.NET-C#] MSChart 最新のデータをグラフに表示

 
slater0911さん、こんにちは! Fuda1です。
> 現状は、グラフ表示はできるのですが、最新の5個のデータをグラフに表示するようにしたいのですが、方法が分からない為、ど
> なたか教えて頂けないでしょうか?

本番では必要としても、簡単に試験できますように、取り合えず、Delegateの部分は外しました。
手法は、X軸の開始時間と、X軸の終了時間をプログラムで設定するだけです。
最新データは、diagSeries[2].Points.Count(赤ライン)のカウント数でわかります。
<修正ソース>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//MCCHARTを使用する時に必要
using System.Windows.Forms.DataVisualization.Charting;

namespace ChartTest
{
    public partial class PolGraph : Form
    {
        public PolGraph()
        {
            InitializeComponent();
        }

        Series[] diagSeries = new Series[3];

        List<string> datetimeList1 = new List<string>();
        List<string> PolishList1 = new List<string>();
        List<string> datetimeList2 = new List<string>();
        List<string> PolishList2 = new List<string>();
        List<string> datetimeList3 = new List<string>();
        List<string> PolishList3 = new List<string>();

        //private delegate void UpdateGridDelegate2();

        //private delegate void SetRowDataDelegate2(List<string> LogString);

        public void PolDisp(List<string> LogString)
        {
            //if (this.InvokeRequired == true)
            //{
            //    SetRowDataDelegate2 method = new SetRowDataDelegate2(PolDisp);
            //    IAsyncResult ar = this.BeginInvoke(method, LogString);
            //    ar.AsyncWaitHandle.WaitOne();
            //    return;
            //}

            //チャートの初期化
            if (chart1.ChartAreas.Count > 0)
                chart1.ChartAreas.Clear();
            if (chart1.Series.Count > 0)
                chart1.Series.Clear();
            if (chart1.Titles.Count > 0)
                chart1.Titles.Clear();

            //タイトル
            Title diagTitle = new Title();
            diagTitle.Text = "MainStep PolishTime";
            chart1.Titles.Add(diagTitle);

            ChartArea diagChartArea = new ChartArea();

            //Y軸の目盛
            diagChartArea.AxisY.Interval = 1;
            diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
            diagChartArea.AxisY.IsMarginVisible = false;
            diagChartArea.AxisY.Maximum = 10;
            diagChartArea.AxisY.Minimum = 0;

            //diagChartArea.AxisX.Maximum = 5;
            //diagChartArea.AxisX.Minimum = 0;

            //チャート領域の範囲を明らかにする為に背景色を付ける
            diagChartArea.BackColor = Color.AntiqueWhite;

            //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)
            chart1.ChartAreas.Add(diagChartArea);

            for (int i = 0; i < 3; i++)
            {
                //シリーズ作成
                diagSeries[i] = new Series();

                //グラフの種類
                diagSeries[i].ChartType = SeriesChartType.StepLine;

                //グラフの線の種類
                diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;

                //軸の型
                diagSeries[0].XValueType = ChartValueType.String;
                diagSeries[0].YValueType = ChartValueType.String;
            }

            switch (LogString[3])
            {
                case "1":
                    datetimeList1.Add(LogString[0]);
                    PolishList1.Add(LogString[5]);
                    break;
                case "2":
                    datetimeList2.Add(LogString[0]);
                    PolishList2.Add(LogString[5]);
                    break;
                case "3":
                    datetimeList3.Add(LogString[0]);
                    PolishList3.Add(LogString[5]);
                    break;
            }

            for (int i = 0; i < datetimeList1.Count; i++)
            {
                diagSeries[0].Points.AddXY(datetimeList1[i], PolishList1[i]);
            }
            chart1.Series.Add(diagSeries[0]);

            for (int i = 0; i < datetimeList2.Count; i++)
            {
                diagSeries[1].Points.AddXY(datetimeList2[i], PolishList2[i]);
            }
            chart1.Series.Add(diagSeries[1]);

            for (int i = 0; i < datetimeList3.Count; i++)
            {
                diagSeries[2].Points.AddXY(datetimeList3[i], PolishList3[i]);
            }
            chart1.Series.Add(diagSeries[2]);

            diagSeries[0].Name = "Name1";
            diagSeries[1].Name = "Name2";
            diagSeries[2].Name = "Name3";

            // X軸 終了値
            diagChartArea.AxisX.Maximum = diagSeries[2].Points.Count;

            // X軸 開始値
            diagChartArea.AxisX.Minimum = diagSeries[2].Points.Count-5 > 0 ? diagSeries[2].Points.Count-5 : 0; 
        }

        private void PolGraph_Load(object sender, EventArgs e)
        {
            List<string> LogString = new List<string>();
            Random rnd = new Random();
            for (int i=0,n=0 ; i < 100; i++)
            {
                LogString.Add(i.ToString());   // 0 DataTime
                LogString.Add("0");            // 1
                LogString.Add("0");            // 2
                LogString.Add("3");            // 3 赤 Name3
                LogString.Add("0");            // 4

                n = rnd.Next(10);
                LogString.Add(n.ToString());   // 5 PolishList

                PolDisp(LogString);
                LogString.Clear();
            }
        }
     }
}

以上
3641

投稿者: slater0911  <a.shakagori@j...>
Date: 2012年6月26日(火) 午前11時16分
タイトル: Re: [.NET-C#] MSChart 最新のデータをグラフに表示

 
fudanoさん
親切なご返答ありがとうございました。

希望の動作が可能になりました。

今後とも宜しくお願いします!

--- In dotnet-csharp@y..., "fudano" <fudano@e...> wrote:
> slater0911さん、こんにちは! Fuda1です。
> > 現状は、グラフ表示はできるのですが、最新の5個のデータをグラフに表示するようにしたいのですが、方法が分からない為、ど
> > なたか教えて頂けないでしょうか?
> 
> 本番では必要としても、簡単に試験できますように、取り合えず、Delegateの部分は外しました。
> 手法は、X軸の開始時間と、X軸の終了時間をプログラムで設定するだけです。
> 最新データは、diagSeries[2].Points.Count(赤ライン)のカウント数でわかります。
> <修正ソース>
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Linq;
> using System.Text;
> using System.Windows.Forms;
> //MCCHARTを使用する時に必要
> using System.Windows.Forms.DataVisualization.Charting;
> 
> namespace ChartTest
> {
>     public partial class PolGraph : Form
>     {
>         public PolGraph()
>         {
>             InitializeComponent();
>         }
> 
>         Series[] diagSeries = new Series[3];
> 
>         List<string> datetimeList1 = new List<string>();
>         List<string> PolishList1 = new List<string>();
>         List<string> datetimeList2 = new List<string>();
>         List<string> PolishList2 = new List<string>();
>         List<string> datetimeList3 = new List<string>();
>         List<string> PolishList3 = new List<string>();
> 
>         //private delegate void UpdateGridDelegate2();
> 
>         //private delegate void SetRowDataDelegate2(List<string> LogString);
> 
>         public void PolDisp(List<string> LogString)
>         {
>             //if (this.InvokeRequired == true)
>             //{
>             //    SetRowDataDelegate2 method = new SetRowDataDelegate2(PolDisp);
>             //    IAsyncResult ar = this.BeginInvoke(method, LogString);
>             //    ar.AsyncWaitHandle.WaitOne();
>             //    return;
>             //}
> 
>             //チャートの初期化
>             if (chart1.ChartAreas.Count > 0)
>                 chart1.ChartAreas.Clear();
>             if (chart1.Series.Count > 0)
>                 chart1.Series.Clear();
>             if (chart1.Titles.Count > 0)
>                 chart1.Titles.Clear();
> 
>             //タイトル
>             Title diagTitle = new Title();
>             diagTitle.Text = "MainStep PolishTime";
>             chart1.Titles.Add(diagTitle);
> 
>             ChartArea diagChartArea = new ChartArea();
> 
>             //Y軸の目盛
>             diagChartArea.AxisY.Interval = 1;
>             diagChartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
>             diagChartArea.AxisY.IsMarginVisible = false;
>             diagChartArea.AxisY.Maximum = 10;
>             diagChartArea.AxisY.Minimum = 0;
> 
>             //diagChartArea.AxisX.Maximum = 5;
>             //diagChartArea.AxisX.Minimum = 0;
> 
>             //チャート領域の範囲を明らかにする為に背景色を付ける
>             diagChartArea.BackColor = Color.AntiqueWhite;
> 
>             //デフォルトの状態のChartAreaオブジェクトを追加(これが無いと表示されない)
>             chart1.ChartAreas.Add(diagChartArea);
> 
>             for (int i = 0; i < 3; i++)
>             {
>                 //シリーズ作成
>                 diagSeries[i] = new Series();
> 
>                 //グラフの種類
>                 diagSeries[i].ChartType = SeriesChartType.StepLine;
> 
>                 //グラフの線の種類
>                 diagSeries[i].BorderDashStyle = ChartDashStyle.Solid;
> 
>                 //軸の型
>                 diagSeries[0].XValueType = ChartValueType.String;
>                 diagSeries[0].YValueType = ChartValueType.String;
>             }
> 
>             switch (LogString[3])
>             {
>                 case "1":
>                     datetimeList1.Add(LogString[0]);
>                     PolishList1.Add(LogString[5]);
>                     break;
>                 case "2":
>                     datetimeList2.Add(LogString[0]);
>                     PolishList2.Add(LogString[5]);
>                     break;
>                 case "3":
>                     datetimeList3.Add(LogString[0]);
>                     PolishList3.Add(LogString[5]);
>                     break;
>             }
> 
>             for (int i = 0; i < datetimeList1.Count; i++)
>             {
>                 diagSeries[0].Points.AddXY(datetimeList1[i], PolishList1[i]);
>             }
>             chart1.Series.Add(diagSeries[0]);
> 
>             for (int i = 0; i < datetimeList2.Count; i++)
>             {
>                 diagSeries[1].Points.AddXY(datetimeList2[i], PolishList2[i]);
>             }
>             chart1.Series.Add(diagSeries[1]);
> 
>             for (int i = 0; i < datetimeList3.Count; i++)
>             {
>                 diagSeries[2].Points.AddXY(datetimeList3[i], PolishList3[i]);
>             }
>             chart1.Series.Add(diagSeries[2]);
> 
>             diagSeries[0].Name = "Name1";
>             diagSeries[1].Name = "Name2";
>             diagSeries[2].Name = "Name3";
> 
>             // X軸 終了値
>             diagChartArea.AxisX.Maximum = diagSeries[2].Points.Count;
> 
>             // X軸 開始値
>             diagChartArea.AxisX.Minimum = diagSeries[2].Points.Count-5 > 0 ? diagSeries[2].Points.Count-5 : 0; 
>         }
> 
>         private void PolGraph_Load(object sender, EventArgs e)
>         {
>             List<string> LogString = new List<string>();
>             Random rnd = new Random();
>             for (int i=0,n=0 ; i < 100; i++)
>             {
>                 LogString.Add(i.ToString());   // 0 DataTime
>                 LogString.Add("0");            // 1
>                 LogString.Add("0");            // 2
>                 LogString.Add("3");            // 3 赤 Name3
>                 LogString.Add("0");            // 4
> 
>                 n = rnd.Next(10);
>                 LogString.Add(n.ToString());   // 5 PolishList
> 
>                 PolDisp(LogString);
>                 LogString.Clear();
>             }
>         }
>      }
> }
> 
> 以上
3642

投稿者: slater0911  <a.shakagori@j...>
Date: 2012年7月4日(水) 午前6時50分
タイトル: メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる

 
みなさん こんにちは。

メインのアプリケーションから他のアプリケーションを起動して使用しています。
現状メインのアプリケーションを閉じたタイミングでは、他のアプリケージョンが開いたままになっているのですが、
メインと閉じた際に、他のアプリも同時に閉じるようにしたいです。

どなたか方法を教えて頂けないでしょうか?

private void ToolStripMenuItem_Click(object sender, EventArgs e)
        {
                      
            string LogHistoryPath = System.Environment.CurrentDirectory + "\\" + "LogDisplay.exe";
            System.Diagnostics.Process alarmProcess = System.Diagnostics.Process.Start(LogHistoryPath);
  
        }
3643

投稿者: 金正日  <obaq1995@y...>
Date: 2012年7月4日(水) 午前7時14分
タイトル: Re: [.NET-C#] メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる

 
無断リンクバンザイ



★他のプログラムを強制終了する

http://jeanne.wankuma.com/tips/csharp/process/kill.html

★起動したアプリケーションが終了するまで待機する

http://dobon.net/vb/dotnet/process/openfile.html








----- Original Message -----
> From: slater0911 <a.shakagori@j...>
> To: dotnet-csharp@y...
> Cc: 
> Date: 2012/7/4, Wed 15:50
> Subject: [.NET-C#] メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる
> 
> [dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
> ---
> みなさん こんにちは。
> 
> メインのアプリケーションから他のアプリケーションを起動して使用しています。
> 現状メインのアプリケーションを閉じたタイミングでは、他のアプリケージョンが開いたままになっているのですが、
> メインと閉じた際に、他のアプリも同時に閉じるようにしたいです。
> 
> どなたか方法を教えて頂けないでしょうか?
> 
> private void ToolStripMenuItem_Click(object sender, EventArgs e)
>     {
>            
>       string LogHistoryPath = System.Environment.CurrentDirectory + 
> "\\" + "LogDisplay.exe";
>       System.Diagnostics.Process alarmProcess = 
> System.Diagnostics.Process.Start(LogHistoryPath);
>  
>     }
> 
> 
> Group URL  : http://www.egroups.co.jp/group/dotnet-csharp/ 
> C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
> Help URL  : http://help.yahoo.co.jp/help/jp/groups/ 
> 
> 
> 
> 
> ---
> なお、投稿者は本メールの送信者欄に表示されている方です。
>
3644

投稿者: slater0911  <a.shakagori@j...>
Date: 2012年7月4日(水) 午前9時21分
タイトル: Re: [.NET-C#] メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる

 
金正日さん ご返答ありがとうございます。

リンク先の例を見ながら3パターンのコードを追記したのですが、↓は他のアプリが開かず、,魯瓮ぅ鵐▲廛蠅固まります。

記載する場所が違うのか、記載方法が違うのか分かりませんでした。

どのようにコードを追記すればよいのでしょうか?

private void ToolStripMenuItem_Click(object sender, EventArgs e)
        {            
            string LogHistoryPath = System.Environment.CurrentDirectory + "\\" + "AlarmLogDisplay.exe";
            System.Diagnostics.Process alarmProcess = System.Diagnostics.Process.Start(LogHistoryPath);
      //追記したコード3種類
            alarmProcess.WaitForExit(); 
            alarmProcess.Kill();     
            alarmProcess.CloseMainWindow(); 
  
        }



--- In dotnet-csharp@y..., 金正日 <obaq1995@y...> wrote:
> 
> 
> 無断リンクバンザイ
> 
> 
> 
> ★他のプログラムを強制終了する
> 
> http://jeanne.wankuma.com/tips/csharp/process/kill.html
> 
> ★起動したアプリケーションが終了するまで待機する
> 
> http://dobon.net/vb/dotnet/process/openfile.html
> 
> 
> 
> 
> 
> 
> 
> 
> ----- Original Message -----
> > From: slater0911 <a.shakagori@j...>
> > To: dotnet-csharp@y...
> > Cc: 
> > Date: 2012/7/4, Wed 15:50
> > Subject: [.NET-C#] メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる
> > 
> > [dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
> > ---
> > みなさん こんにちは。
> > 
> > メインのアプリケーションから他のアプリケーションを起動して使用しています。
> > 現状メインのアプリケーションを閉じたタイミングでは、他のアプリケージョンが開いたままになっているのですが、
> > メインと閉じた際に、他のアプリも同時に閉じるようにしたいです。
> > 
> > どなたか方法を教えて頂けないでしょうか?
> > 
> > private void ToolStripMenuItem_Click(object sender, EventArgs e)
> >     {
> >            
> >       string LogHistoryPath = System.Environment.CurrentDirectory + 
> > "\\" + "LogDisplay.exe";
> >       System.Diagnostics.Process alarmProcess = 
> > System.Diagnostics.Process.Start(LogHistoryPath);
> >  
> >     }
> > 
> > 
> > Group URL  : http://www.egroups.co.jp/group/dotnet-csharp/ 
> > C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
> > Help URL  : http://help.yahoo.co.jp/help/jp/groups/ 
> > 
> > 
> > 
> > 
> > ---
> > なお、投稿者は本メールの送信者欄に表示されている方です。
> >
3645

投稿者: slater0911  <a.shakagori@j...>
Date: 2012年7月4日(水) 午前10時52分
タイトル: 同じ値をカウントする

 
みなさん こんにちは。

datagridviewerを2個使用し、CSVファイルからデータを読み込むソースを作成しています。

dataGridViewer1は、CSVの中身をそのまま表示しており、動作はうまくいっています。

dataGridViewer2は、同じID(CSVファイルの3行目)をカウントし、IDごとにdataGridViewer2に表示させようと
していますが、どうやったらいいのか分かりません。

ソースと表示したいものを下記に記載しています。

どなたかdataGridViewer2のソースの記載方法を教えて頂けないでしょうか?


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace LogDisplay
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            DataGridSetting();
        }

        //CSVファイルから読み込んだデータを格納
        List<CsvData> csvList = new List<CsvData>();

        //列定義
        private void DataGridSetting()
        {
            //列幅
            dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
        }

        //指定日表示
        private void button2_Click(object sender, EventArgs e)
        {     
            //指定日
            DateTime selectday = dateTimePicker1.Value.Date;

            csvList.Clear();
            dataGridView1.DataSource = null;

            //フォルダパス
            string FolderPath = @"C:\Documents and Settings\fauser\デスクトップ\Log";

            foreach (string fileName in Directory.GetFiles(FolderPath, "log*.csv"))
            {
                //指定日だけ読み込む
                if (selectday == File.GetLastWriteTime(fileName).Date)
                {
                    StreamReader streamReader = new StreamReader(fileName, Encoding.GetEncoding("shift-jis"));
                    while (streamReader.Peek() != -1)
                    {
                        string[] strList = streamReader.ReadLine().Split(',');
                        CsvData csvBuffer = new CsvData(strList);
                        csvList.Add(csvBuffer);
                    }
                    streamReader.Close();
                }
            }
            dataGridView1.DataSource = csvList;
        }
    }
}

namespace LogDisplay
{
    class CsvData
    {
        [System.ComponentModel.DisplayName("時間")]                                                                                                                                                                                                                                                                                                                              
        public string date{get; set;}
        [System.ComponentModel.DisplayName("ID")]      
        public string id { get; set; }
        [System.ComponentModel.DisplayName("メッセージ")]      
        public string message { get; set; }

        public CsvData(string[] strList)
        {
            for (int index = 0; index < strList.Length; index++)
            {
                switch(index)
                {
                    case 0: 
                        date = strList[index];
                        break;
                    case 2:
                        id = strList[index];
                        break;
                    case 3:
                        message = strList[index];
                        break;
                }
            }
        }
    }
}

(CSVファイルの中身)
2012/07/02 ,000,1848,aaa
2012/07/02 ,000,1346,bbb
2012/07/02 ,111,1346,bbb
2012/07/02 ,111,1346,bbb
2012/07/02 ,111,2011,ccc
2012/07/02 ,111,1346,bbb
2012/07/02 ,111,2011,ccc

(datagridviewer1表示)
|時間      |ID  |メッセージ|
|2012/07/02|1848|aaa       | 
|2012/07/02|1346|bbb       | 
|2012/07/02|1346|bbb       | 
|2012/07/02|1346|bbb       | 
|2012/07/02|2011|ccc       | 
|2012/07/02|1346|bbb       | 
|2012/07/02|2011|ccc       |   

(datagridviewer2表示)
|ID  |回数|メッセージ|
|1848|1   |aaa       |
|1346|4   |bbb       |
|2011|2   |ccc       |
3646

投稿者: 金正日  <obaq1995@y...>
Date: 2012年7月4日(水) 午後2時14分
タイトル: Re: [.NET-C#] メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる

 
たとえば、メインのアプリケーションというのが、フォームであれば
formclosingイベント等で、起動したプロセスをkillしてあげればよろしいかと思います。





----- Original Message -----
> From: slater0911 <a.shakagori@j...>
> To: dotnet-csharp@y...
> Cc: 
> Date: 2012/7/4, Wed 18:21
> Subject: Re: [.NET-C#] メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる
> 
> [dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
> ---
> 金正日さん ご返答ありがとうございます。
> 
> リンク先の例を見ながら3帥若潟潟若菴処с≠≪篁≪<ゃ潟≪冴障障
> 
> 記載する場所が違うのか、記載方法が違うのか分かりませんでした。
> 
> どのようにコードを追記すればよいのでしょうか?
> 
> private void ToolStripMenuItem_Click(object sender, EventArgs e)
>     {      
>       string LogHistoryPath = System.Environment.CurrentDirectory + 
> "\\" + "AlarmLogDisplay.exe";
>       System.Diagnostics.Process alarmProcess = 
> System.Diagnostics.Process.Start(LogHistoryPath);
>       //追記したコード3種類
>       alarmProcess.WaitForExit();
>       alarmProcess.Kill();
>       alarmProcess.CloseMainWindow();
>  
>     }
> 
> 
> 
> --- In dotnet-csharp@y..., 金正日 <obaq1995@y...> wrote:
>> 
>> 
>>  無断リンクバンザイ
>> 
>> 
>> 
>>  ★他のプログラムを強制終了する
>> 
>>  http://jeanne.wankuma.com/tips/csharp/process/kill.html
>> 
>>  ★起動したアプリケーションが終了するまで待機する
>> 
>>  http://dobon.net/vb/dotnet/process/openfile.html
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>  ----- Original Message -----
>>  > From: slater0911 <a.shakagori@j...>
>>  > To: dotnet-csharp@y...
>>  > Cc: 
>>  > Date: 2012/7/4, Wed 15:50
>>  > Subject: [.NET-C#] メインのアプリケーションを閉じたタイミングで、他のアプリケーションも閉じる
>>  > 
>>  > [dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
>>  > ---
>>  > みなさん こんにちは。
>>  > 
>>  > メインのアプリケーションから他のアプリケーションを起動して使用しています。
>>  > 現状メインのアプリケーションを閉じたタイミングでは、他のアプリケージョンが開いたままになっているのですが、
>>  > メインと閉じた際に、他のアプリも同時に閉じるようにしたいです。
>>  > 
>>  > どなたか方法を教えて頂けないでしょうか?
>>  > 
>>  > private void ToolStripMenuItem_Click(object sender, EventArgs e)
>>  >   {
>>  >      
>>  >    string LogHistoryPath = System.Environment.CurrentDirectory + 
>>  > "\\" + "LogDisplay.exe";
>>  >    System.Diagnostics.Process alarmProcess = 
>>  > System.Diagnostics.Process.Start(LogHistoryPath);
>>  > 
>>  >   }
>>  > 
>>  > 
>>  > Group URL : http://www.egroups.co.jp/group/dotnet-csharp/ 
>>  > C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
>>  > Help URL : http://help.yahoo.co.jp/help/jp/groups/ 
>>  > 
>>  > 
>>  > 
>>  > 
>>  > ---
>>  > なお、投稿者は本メールの送信者欄に表示されている方です。
>>  >
> 
> 
> Group URL  : http://www.egroups.co.jp/group/dotnet-csharp/ 
> C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
> Help URL  : http://help.yahoo.co.jp/help/jp/groups/ 
> 
> 
> 
> 
> ---
> なお、投稿者は本メールの送信者欄に表示されている方です。
>
3647

投稿者: 金正日  <obaq1995@y...>
Date: 2012年7月4日(水) 午後2時38分
タイトル: Re: [.NET-C#] 同じ値をカウントする

 
VBのコードですが、参考になるかと思います。↓
http://www.vb-tips.com/dbpages.aspx?ID=c885452d-fcac-4c74-b578-974b8f5851b7


また単純な方法として
csvデータは読み込めてるのであれば、読み込みと同時にdataGridViewer2用のデータを
作ってしまえばよいのでは?





----- Original Message -----
> From: slater0911 <a.shakagori@j...>
> To: dotnet-csharp@y...
> Cc: 
> Date: 2012/7/4, Wed 19:52
> Subject: [.NET-C#] 同じ値をカウントする
> 
> [dotnet-csharp]グループの掲示板に投稿があったことを、Yahoo!グループよりお知らせいたします。
> ---
> みなさん こんにちは。
> 
> datagridviewerを2個使用し、CSVファイルからデータを読み込むソースを作成しています。
> 
> dataGridViewer1は、CSVの中身をそのまま表示しており、動作はうまくいっています。
> 
> dataGridViewer2は、同じID(CSVファイルの3行目)をカウントし、IDごとにdataGridViewer2に表示させようと
> していますが、どうやったらいいのか分かりません。
> 
> ソースと表示したいものを下記に記載しています。
> 
> どなたかdataGridViewer2のソースの記載方法を教えて頂けないでしょうか?
> 
> 
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Linq;
> using System.Text;
> using System.Windows.Forms;
> using System.IO;
> 
> namespace LogDisplay
> {
>   public partial class Form1 : Form
>   {
>     public Form1()
>     {
>       InitializeComponent();
>       DataGridSetting();
>     }
> 
>     //CSVファイルから読み込んだデータを格納
>     List<CsvData> csvList = new List<CsvData>();
> 
>     //列定義
>     private void DataGridSetting()
>     {
>       //列幅
>       dataGridView1.AutoSizeRowsMode = 
> DataGridViewAutoSizeRowsMode.AllCells;
>       dataGridView1.AutoSizeColumnsMode = 
> DataGridViewAutoSizeColumnsMode.AllCells;
>     }
> 
>     //指定日表示
>     private void button2_Click(object sender, EventArgs e)
>     {  
>       //指定日
>       DateTime selectday = dateTimePicker1.Value.Date;
> 
>       csvList.Clear();
>       dataGridView1.DataSource = null;
> 
>       //フォルダパス
>       string FolderPath = @"C:\Documents and 
> Settings\fauser\デスクトップ\Log";
> 
>       foreach (string fileName in Directory.GetFiles(FolderPath, 
> "log*.csv"))
>       {
>         //指定日だけ読み込む
>         if (selectday == File.GetLastWriteTime(fileName).Date)
>         {
>           StreamReader streamReader = new StreamReader(fileName, 
> Encoding.GetEncoding("shift-jis"));
>           while (streamReader.Peek() != -1)
>           {
>             string[] strList = 
> streamReader.ReadLine().Split(',');
>             CsvData csvBuffer = new CsvData(strList);
>             csvList.Add(csvBuffer);
>           }
>           streamReader.Close();
>         }
>       }
>       dataGridView1.DataSource = csvList;
>     }
>   }
> }
> 
> namespace LogDisplay
> {
>   class CsvData
>   {
>     [System.ComponentModel.DisplayName("時間")]           
>                                         
>                                         
>                                         
>                             
>     public string date{get; set;}
>     [System.ComponentModel.DisplayName("ID")]   
>     public string id { get; set; }
>     [System.ComponentModel.DisplayName("メッセージ")]   
>     public string message { get; set; }
> 
>     public CsvData(string[] strList)
>     {
>       for (int index = 0; index < strList.Length; index++)
>       {
>         switch(index)
>         {
>           case 0: 
>             date = strList[index];
>             break;
>           case 2:
>             id = strList[index];
>             break;
>           case 3:
>             message = strList[index];
>             break;
>         }
>       }
>     }
>   }
> }
> 
> (CSVファイルの中身)
> 2012/07/02 ,000,1848,aaa
> 2012/07/02 ,000,1346,bbb
> 2012/07/02 ,111,1346,bbb
> 2012/07/02 ,111,1346,bbb
> 2012/07/02 ,111,2011,ccc
> 2012/07/02 ,111,1346,bbb
> 2012/07/02 ,111,2011,ccc
> 
> (datagridviewer1表示)
> |時間   |ID |メッセージ|
> |2012/07/02|1848|aaa    | 
> |2012/07/02|1346|bbb    | 
> |2012/07/02|1346|bbb    | 
> |2012/07/02|1346|bbb    | 
> |2012/07/02|2011|ccc    | 
> |2012/07/02|1346|bbb    | 
> |2012/07/02|2011|ccc    | 
> 
> (datagridviewer2表示)
> |ID |回数|メッセージ|
> |1848|1  |aaa    |
> |1346|4  |bbb    |
> |2011|2  |ccc    |
> 
> 
> 
> 
> 
> 
> Group URL  : http://www.egroups.co.jp/group/dotnet-csharp/ 
> C# Web Sites: http://www.egroups.co.jp/links/dotnet-csharp
> Help URL  : http://help.yahoo.co.jp/help/jp/groups/ 
> 
> 
> 
> 
> ---
> なお、投稿者は本メールの送信者欄に表示されている方です。
>
No. 日付順に表示  |  スレッド表示
合計256MB中10.0MB使用(3%)
メッセージ一覧に戻る
3707件中 3632-3647件目を表示 前の一覧 | 次の一覧  [ 最初の一覧 | 最後の一覧 ]


Yahoo!Japan


プライバシーポリシー - 利用規約 - ガイドライン - ヘルプ
  Copyright (C) 2013 Yahoo Japan Corporation. All Rights Reserved.