none
비주얼베이직 수식입력 RRS feed

  • 질문

  • 비주얼베이직(비주얼베이직 2010이상 버전)에서 textbox를 통해 얻은 값을 조금 복잡한 수식(제곱 같은 연산이 포함됨)을 계산하여 출력하고 싶습니다. 계산 후 출력해줄때 엑셀처럼 표로 출력을 해줘야되는데 datagridview를 이용해야 되는지 아니면 다른 툴을 사용해야되는지 궁금합니다.
    그리고 이 계산된 값을 통해서 그래프를 그리고 싶은데 어떤 툴로 어떻게 해야되는지 참고 자료나 도움을 얻고싶습니다!!
    답변 부탁드립니다~
    2016년 11월 17일 목요일 오전 10:10

답변


  • 위와 같은 결과물을 도출하기 위한 예제입니다.

    • .NET Framework 4.0
    • VisualStudio 2010
    • 흔히 MSChart라 지칭하는 .NET Framework 내장 Chart 컨트롤을 이용하였습니다.

    1. Form에 DataGridView, Chart(System.Windows.Forms.DataVisualization.Charting.Chart)를 추가합니다.

    2. DataGridView에 열 2개(반지름, 면적)를 추가합니다.

    3. Form에 버튼 btn_AddResult와 btn_ShowGraph를 추가합니다.

    4. 다음은 해당 예제의 소스입니다.(VB는 처음이라 본인이 작성한 C# 예제의 일부분을 최대한 간단히 변환해보았습니다)

    Public Class Form1
        Dim [pi] As Double = 3.14R
    
        Private Sub btn_AddResult_Click(sender As System.Object, e As System.EventArgs) Handles btn_AddResult.Click
            Try
                DataGridView1.Rows.Add(New Object() {
                txt_Radius.Text,
                Math.Round(Convert.ToDouble(txt_Radius.Text) ^ 2 * pi, 2)
                })
            Catch
                MessageBox.Show("올바른 숫자를 입력해 주십시오")
            End Try
        End Sub
    
        Private Sub btn_ShowGraph_Click(sender As System.Object, e As System.EventArgs) Handles btn_ShowGraph.Click
            Dim [rowCount] As Integer = DataGridView1.RowCount
            Dim [columnCount] As Integer = DataGridView1.ColumnCount
    
            If Chart1.Series.Count > 0 Then
                Chart1.Series.Clear()
            End If
    
            For colIndex = 1 To columnCount - 1
                Dim [series] As System.Windows.Forms.DataVisualization.Charting.Series =
                    Chart1.Series.Add(DataGridView1.Columns(colIndex).HeaderText)
                series.ChartType = DataVisualization.Charting.SeriesChartType.Radar
                For rowIndex = 0 To rowCount - 2
                    series.Points.AddXY(DataGridView1(0, rowIndex).Value,
                                        Convert.ToDouble(DataGridView1(colIndex, rowIndex).Value))
                Next
            Next
    
        End Sub
    
    End Class


    DataGridView, Chart 컨트롤 모두 .NET Framework에 포함되어 있으므로

    MSDN 도움말과 함께 예제가 제공됩니다.

    https://msdn.microsoft.com/ko-kr/default.aspx




    2016년 11월 28일 월요일 오전 2:57