Member 13410460 Ответов: 1

Как показать список информации, когда я перемещаю мышь на диаграмму в VB.NET -что ?


Привет всем, у меня есть несколько диаграмм в моей голове. vb.net формы, которые я хотел бы сделать их более сложными . Я погуглил, но не нашел ничего такого конкретного.
Я просто хочу знать, возможно ли это, и какой метод я должен использовать или в каком направлении я должен идти..


Я связал свою диаграмму со значениями базы данных SQL.

Вот некоторые из кодов, которые я использую:
Private Sub LoaddayData()

       Chartday.DataSource = GetData1()
       Chartday.Series("Day").Points.Clear()
       Chartday.Series("Day").XValueMember = "Day"
       Chartday.Series("Day").YValueMembers = "Total"
       Chartday.Series("Day").ChartType = SeriesChartType.Spline
       Chartday.Series("Day").IsValueShownAsLabel = True
End Sub

Private Function GetData1() As DataTable

       Dim dtChartData As New DataTable()

       Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("db").ConnectionString)
           Using cmd As New SqlCommand("Chart_daily1", conn) ' Total working hours in the month -- step3
               cmd.CommandType = CommandType.StoredProcedure

               conn.Open()
               'Counts Year only'
               cmd.Parameters.AddWithValue("@DateD", DateTimePickerM.Text)
               cmd.Parameters.AddWithValue("@Department", ComboBoxDepartment.Text)

               Dim reader As SqlDataReader = cmd.ExecuteReader()
               dtChartData.Load(reader)

           End Using
       End Using

       Return dtChartData

   End Function

Спасибо,
Мы ценим вашу помощь.

Что я уже пробовал:

Вот несколько примеров, которые я пробовал, но здесь он показывает только ту информацию, которая уже есть в диаграмме данных Как отобразить информацию линейного графика, наведя курсор мыши на него[^]


Поэтому мне было интересно, можно ли показать больше информации, выбрав или просто наведя курсор мыши на кривую. Например, список информации или что-то в этом роде.

Спасибо,
Лучшие Rergards

1 Ответов

Рейтинг:
4

Gerry Schmitz

"Информация" отображается через .Свойство Text объекта CalloutAnnotation (в Примере); добавьте любую дополнительную информацию, которую вы хотите.

With ta
    .AnchorDataPoint = Chart1.Series(0).Points(result.PointIndex)
    .X = thisPt.X + 1
    .Y = thisPt.Y + 1
    .Text = thisPt.ToString
    .CalloutStyle = CalloutStyle.SimpleLine
    .ForeColor = Color.Red
    .Font = New Font("Tahoma", 12, FontStyle.Bold)
End With


Member 13410460

Спасибо за ваш ответ и помощь, я проверю его сейчас.
Рекорды

Member 13410460

Я изучил это, но все еще не знаю, как это сделать, это выглядит довольно сложно для моего уровня кодирования.

Gerry Schmitz

Это так трудно, как вы хотите сделать это. Вы можете выделить многострочное текстовое поле (или любой другой "элемент управления типом списка") в форме для "ведения журнала" вместо "аннотирования". Это называется проектированием; пределы - это ваше воображение.

Member 13410460

Есть ли шанс, что я смогу подключить свой SQL-запрос внутри него ?
Например вот в таком виде :

Dim thisPt As New PointF(CSng(Chartday.Серия("День").Очки(Результат.PointIndex).Увеличение),
CSng(Chartday.Серия("День").Очки(Результат.PointIndex).YValues(0)))

И если да , то как я могу это сделать ?

Gerry Schmitz

Вы форматируете результаты вашего запроса как "строку" (например) и добавляете ее в свойство ".Text" (или что-то еще) любого элемента управления, используемого для отслеживания мыши. Нарисуйте изображение пользовательского интерфейса и визуализируйте, как должны взаимодействовать компоненты. Никто не поймет этого правильно, если все, что они делают, - это "думают" об этом.