Amranullah Hassanzada Ответов: 1

Как предотвратить появление этого сообщения в предварительном просмотре диаграммы: "элемент диаграммы с именем ''уже существует в коллекции серий"?


I have the X-axis and also legends in my chart which are linked whit text-boxes. every text-box is under randomize value and name means don't have special or static name of number it depends on user inserted data. Sometime when there is same name or numbers in two or more then tow text-boxes after debugging VB form the chart show message (A chart element with the name ' ' already exists in the series collection) the ting is I have to include those text-boxes which have the same name, means I cannot ignore them because every text-box data is impotent. So please how can I prevent this message by using code. thanks 


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

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            Me.Chart1.Series.Clear()
            Me.Chart1.Series.Add(Form3.TextBox6.Text)
            Me.Chart1.Series.Add(Form3.TextBox17.Text)
            Me.Chart1.Series.Add(Form3.TextBox23.Text)
            Me.Chart1.Series.Add(Form3.TextBox29.Text)
            Me.Chart1.Series.Add(Form3.TextBox35.Text)

            Me.Chart1.Series(Form3.TextBox6.Text).Points.AddXY(Form3.TextBox6.Text, Val(Form3.txtpi1.Text))
            Me.Chart1.Series(Form3.TextBox17.Text).Points.AddXY(Form3.TextBox17.Text, Val(Form3.txtpi2.Text))
            Me.Chart1.Series(Form3.TextBox23.Text).Points.AddXY(Form3.TextBox23.Text, Val(Form3.txtpi3.Text))
            Me.Chart1.Series(Form3.TextBox29.Text).Points.AddXY(Form3.TextBox29.Text, Val(Form3.txtpi4.Text))
            Me.Chart1.Series(Form3.TextBox35.Text).Points.AddXY(Form3.TextBox35.Text, Val(Form3.txtpi5.Text))

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            Beep()
        End Try
    End Sub

1 Ответов

Рейтинг:
1

OriginalGriff

Название довольно понятно: вы пытаетесь добавить серию в коллекцию, но серия с тем же именем уже включена. Имена должны быть уникальными! Предположим, что одно или несколько ваших текстовых полей содержат дублирующуюся информацию, возможно, пробел.

Но мы не можем сказать, потому что у нас нет доступа к вашему коду, пока он работает!
Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Если вы не знаете, как его использовать, то быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!

И еще две детали, о которых вам следует подумать:
1) прекратите использовать имена Visual Studio по умолчанию для всего - вы можете помнить, что "TextBox8" - это номер мобильного телефона сегодня, но когда вам придется изменить его через три недели, вы это сделаете? Используйте описательные имена - например, "tbMobileNo", - и ваш код станет легче читать, более самодокументируемым, легче поддерживать - и на удивление быстрее кодировать, потому что Intellisense может добраться до "tbMobile" за три нажатия клавиш, где "TextBox8" занимает размышление и 8 нажатий клавиш...
2) не менее 35 текстовых полей в одной форме? Возможно, вы захотите рассмотреть свой дизайн - это совсем не удобно для пользователя. Подумайте о том, чтобы разбить форму на страницы вкладок или более мелкие формы и использовать UserControls для "группировки" связанной информации вместе. Просто бросание элементов управления в форму приводит к очень запутанному интерфейсу,m и это способствует ошибкам ввода и ошибкам - и если они достигают БД, то может потребоваться значительная работа, чтобы исправить проблемы, которые возникли в дальнейшем.