none
Ограниченная область действия формы

    Вопрос

  • Добрый день! Возникла такая проблема при работе с Windows Forms. Я написал программу, которая при нажатии на форму рисует между кликами линию (программа очень простая). У меня появляется следующая проблема: мои линии рисуются только в определенной области, хоть я и делаю клики от края формы, так как по идее область действия программы должна быть вся форма. Кто знает в чем проблема? Прошу помочь, спасибо.

Все ответы

  • Проблему (ошибку) можно понять только взглянув на исходный код. Если программа является Вашей учебной задачей, покажите ее преподавателю. Его обязанность искать ошибки студентов. Иначе, он зря получает зарплату :)

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

  • Добрый день! Возникла такая проблема при работе с Windows Forms. Я написал программу, которая при нажатии на форму рисует между кликами линию (программа очень простая). У меня появляется следующая проблема: мои линии рисуются только в определенной области, хоть я и делаю клики от края формы, так как по идее область действия программы должна быть вся форма. Кто знает в чем проблема? Прошу помочь, спасибо.

    Написал небольшую программку для теста:

    Среда - VS Community 2017, язык VB, проект Windows Form. Создал новый проект, все свойства формы - по умолчанию (абсолютно ничего не менял). Написал код:

    Public Class Form1
        Private Pt(1) As Point 'Начало линии и конец линии
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'Задание начальных значений
            With Pt(0)
                .X = 0
                .Y = 0
    
            End With
            With Pt(1)
                .X = 0
                .Y = 0
            End With
        End Sub
    
        Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown
            'Кнопка мыши нажата - задаются коодинаты начальной точки
            With Pt(0)
                .X = e.X
                .Y = e.Y
            End With
        End Sub
    
        Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles Me.MouseUp
            'Кнопка мыши отжата - задаются координаты последней точки
            With Pt(1)
                .X = e.X
                .Y = e.Y
            End With
    
            Me.Refresh() 'Обновляем форму, чтобы нарисовать линию
        End Sub
    
        Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
            e.Graphics.DrawLine(Pens.Red, Pt(0), Pt(1)) 'Рисуется линия с заданными координатами и красным пером
        End Sub
    End Class

    Запускаем, нажимаем кнопку мыши в одном углу и не отпуская проводим до противоположного угла формы. Отпускае кнопку.

    Результат:

    Форма развернута на весь экран:

    Если есть вопросы - напишите. Хоть сам освежу в памяти работу с графикой.:)


    Alexandr_Smirnoff