none
Listview에서 MSchart로 데이터 넘겨주기 RRS feed

  • 질문

  • Listview에서 MSchart로 데이터 넘겨주기

    예전에도 질문했었는데 , 이해가 잘 안되서 도움을 또 요청합니다.

    Tag를 달아서 해결하라고 했는데 이것도 어떻게 할지잘 모르겠구요.

    private void fileOpen_2_Click(object sender, EventArgs e)
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.InitialDirectory = "C:\\..\\..\\Desktop";
                openFileDialog.Filter = "텍스트파일 (*.txt)|*.txt|데이터파일 (*.dat)|*.dat|모든파일 (*.*)|*.*";
                openFileDialog.FilterIndex = 3;
                openFileDialog.RestoreDirectory = true; // File location saved

                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    openfileTextbox.Text = openFileDialog.FileName;
                    //LoadData(openFileDialog.FileName);
                }
            }

    private void fileLoad_Click(object sender, EventArgs e) { if (openfileTextbox.TextLength > 0) { if (!string.IsNullOrEmpty(openfileTextbox.Text)) LoadData(openfileTextbox.Text); } else if(openfileTextbox.TextLength <= 0) MessageBox.Show("불러온 데이터가 없습니다."); } private void LoadData(string fileName) { using (TextReader tReader = new StreamReader(fileName)) { string[] stringLines = tReader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); foreach (string stringLine in stringLines) { if (stringLine != string.Empty) { //Divide this unit to use separator string[] stringArray = stringLine.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); //Composition items ListViewItem item = listView1.Items.Add(stringArray[0]); item.SubItems.Add(stringArray[1]); } } } }


    데이터 Listview에 받게는 이렇게 해놓았는데, 여기서 Tag달아서 MSchart로 넘겨주려면 어떻게 해야되는건가요...?

    데이터는 메모장에 있는 거 한줄씩 받아서 listview로 넘겨주게 만들었습니다.


    • 편집됨 Julian S Lim 2012년 7월 23일 월요일 오전 1:19
    2012년 7월 23일 월요일 오전 1:17

답변

  •         private void LoadData(string fileName)
            {
                using (TextReader tReader = new StreamReader(fileName))
                {
                    string[] stringLines = tReader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (string stringLine in stringLines)
                    {
                        if (stringLine != string.Empty)
                        {
                            //Divide this unit to use separator
                            string[] stringArray = stringLine.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
    
                            //Composition items
                            //ListViewItem item = listView1.Items.Add( stringArray[0]);
                            //item.SubItems.Add(stringArray[1]);
                            ListViewItem item = new ListViewItem(stringArray[0]);
                            item.Tag = stringArray[1];
                            listView1.Items.Add(item);
                        }
                    }
                }
            }
    
            private void listView1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string data = listView1.Items[listView1.FocusedItem.Index].Tag.ToString();
                // you can draw a chart from data
                //데이터가 10,20,25,30,40,60 과 같이 들어있다고 가정
                string[] arrStrData = data.Split(',');
                for (int i = 0; i < arrStrData.Length; i++)
                {
                    chart1.Series["Series1"].Points.AddXY(Convert.ToDouble(i),Convert.ToDouble(arrStrData[i]));
                }
            }

    이런식으로 하시면 될것 같습니다.

    • 답변으로 표시됨 Julian S Lim 2012년 7월 24일 화요일 오전 4:17
    2012년 7월 23일 월요일 오전 5:45

모든 응답

  •         private void LoadData(string fileName)
            {
                using (TextReader tReader = new StreamReader(fileName))
                {
                    string[] stringLines = tReader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (string stringLine in stringLines)
                    {
                        if (stringLine != string.Empty)
                        {
                            //Divide this unit to use separator
                            string[] stringArray = stringLine.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
    
                            //Composition items
                            //ListViewItem item = listView1.Items.Add( stringArray[0]);
                            //item.SubItems.Add(stringArray[1]);
                            ListViewItem item = new ListViewItem(stringArray[0]);
                            item.Tag = stringArray[1];
                            listView1.Items.Add(item);
                        }
                    }
                }
            }
    
            private void listView1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string data = listView1.Items[listView1.FocusedItem.Index].Tag.ToString();
                // you can draw a chart from data
                //데이터가 10,20,25,30,40,60 과 같이 들어있다고 가정
                string[] arrStrData = data.Split(',');
                for (int i = 0; i < arrStrData.Length; i++)
                {
                    chart1.Series["Series1"].Points.AddXY(Convert.ToDouble(i),Convert.ToDouble(arrStrData[i]));
                }
            }

    이런식으로 하시면 될것 같습니다.

    • 답변으로 표시됨 Julian S Lim 2012년 7월 24일 화요일 오전 4:17
    2012년 7월 23일 월요일 오전 5:45
  • 안녕하십니까? Julian S Lim 님,
    Microsoft MSDN 의 Forum 사이트를 방문해 주셔서 감사합니다.

    현재 문의 하신 ”Listview에서 MSchart로 데이터 넘겨주기" 대해 답변을 드리겠습니다.

    아래 GoldrushKorea님이 좋은 대답 해주셨습니다.

    도움이 되셨다면 꼭 좀 답변 채택과 감사말씀 부탁드리겠습니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    2012년 7월 23일 월요일 오전 7:05
    중재자