VB_Learner Ответов: 0

Добавьте графическую линию на форму


У меня есть код, который может генерировать ряд прямых линий в форме в VB 2010. Он работает таким образом, что вы указываете количество строк в текстовом поле, которое хотите создать в форме. Это создаст только половину линий. Но есть еще одна кнопка, которая будет увеличивать одну строку за раз ниже группы строк, созданных ранее, и ПЕРЕМЕЩАЕТ все строки вверх. например: я ввел 16 в текстовое поле: он будет генерировать только 8 строк. Затем я нажимаю вторую кнопку, чтобы добавить остальные 8 строк под ранее созданными строками ОДИН ЗА ОДНОЙ с каждым щелчком, и это также будет перемещать строки вверх. Означает, что начальная точка линии будет такой же, и она будет перемещать линии вверх от этой точки одну за другой, пока не достигнет 16.
Пока что код, который у меня есть, находится ниже. Проблема в том, что я не могу увеличить строки нажатием второй кнопки. Ваша быстрая реакция будет оценена по достоинству...... Спасибо и С наилучшими пожеланиями VB_Learner

[Edit] добавлен комментарий от OP
Проблема в том, что я не могу увеличивать строки одну за другой от нажатия второй кнопки.
[/Редактировать]

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

Public Class Form1
Private Xstart As Integer
Private Ystart As Integer
Private Xend As Integer
Private Yend As Integer

Dim graphicsfun As Graphics
Dim pencolor As New Pen(Color.Navy, 1)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    graphicsfun = Me.CreateGraphics

    graphicsfun.Clear(Color.White)

    Xstart = 50
    Ystart = 100
    Xend = 250
    Yend = 50

    Dim i As Integer



    For i = 0 To (Val(Me.TextBox1.Text) / 2) - 1

        graphicsfun.DrawLine(pencolor, Xstart + 150, i * (-Ystart) + 700, Xend + 150, i * (-Yend) + 700)

        Ystart = +8
        Yend = +8
    Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


    Dim rollon As Integer
    Dim iter As Integer
    For iter = 0 To (Val(Me.TextBox1.Text) / 2) - 1
        For rollon = 1 To (Val(Me.TextBox1.Text) / 2) - 1

            graphicsfun.DrawLine(pencolor, Xstart + 150, rollon * (-Ystart) + 700 + (Ystart), Xend + 150, rollon * (-Yend) + 700 + (Yend))

            Ystart = +8
            Yend = +8

        Next

    Next




End Sub

0x01AA

И в чем проблема?

VB_Learner

Проблема в том, что я не могу увеличивать строки одну за другой от нажатия второй кнопки. Извините, что не упомянул об этой проблеме раньше.. Спасибо!!

0x01AA

без проблем. Я предлагаю вам улучшить вопрос с помощью этой информации ;) Тем временем я сделал это для тебя. Надеюсь, вы с этим согласитесь. В противном случае у вас всегда есть возможность удалить мои изменения.

0x01AA

Во-первых: у меня нет опыта работы с синтаксисом VB...
Во-вторых: я думаю, что ваша проблема, по-видимому, заключается в том (при очень ленивом взгляде на ваш код), что вы не фиксируете то, что сделал allready. Вы всегда возвращаетесь к значению TextBox1 также в Button2_Click, но вы должны зафиксировать то, что вы уже сделали в переменной-члене формы.

Кстати: именование кнопок помогает вам и другим. Я имею в виду "кнопка 1" должен называться что-то вроде "ButtonStartGraph" и "элемент button2" что-то вроде "ButtonStepGraph"...

[no name]

И все это время вы не задавали вопросов и не описывали реальную проблему. Узнайте, как использовать отладчик, и вы, скорее всего, сами решите свою проблему.

0 Ответов