VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
73 个问题
我发现了一种使用键控事件在主屏幕上显示正方形的可能性。 方法
Sub Rechteck()
Dim Entschlossen As Graphics = Me.CreateGraphics()
With Entschlossen
.DrawRectangle(Pens.Blue, 100, 100, 100, 100)
End With
End Sub
使用命令“CreateGraphics”是一个选项。我想还有更多。我还考虑 了有关“CreateGraphics”的文档帖子,该命令用于组件 和控件以更改图形。
我的extension.vb文件保存了上面的代码
Imports System.ComponentModel
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Public Sub New()
End Sub
Sub Rechteck()
Dim Entschlossen As Graphics = Me.CreateGraphics()
With Entschlossen
.DrawRectangle(Pens.Blue, 100, 100, 100, 100)
End With
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
End Sub
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs) Handles Me.KeyUp
Select Case e.KeyCode
Case Keys.Space
Rechteck()
End Select
End Sub
<STAThread()> _
Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub
End Class
我没有时间记住每一条代码线。我的痛苦。但我尝试了。因此 ,我搜索一条路径来从 paintevent 获得 keyup 事件根。 我在搜索和记忆时遇到的最大问题是,painteventargs 的变量名 必须在例如 keyup 事件中进行配置。我认为这不是一个 vb.net 语言 问题,这对我来说仍然是一个问题。
Note:此问题总结整理于:How to use keyup event keystrikes to load paintevent shapes. Is it possible to use a delegate?
感谢您的反馈。 可以参考以下方法在keyup事件中使用setclip方法。
Private state As String
Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
Select Case e.KeyCode
Case Keys.O
state = "O"
Case Keys.Space
state = "Space"
End Select
Me.Invalidate()
End Sub
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
Select Case state
Case "O"
Dim clipRect As New Rectangle(100, 100, 100, 100)
e.Graphics.SetClip(clipRect, CombineMode.Replace)
e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0, 0, 500, 500)
Case "Space"
Dim clipRect As New Rectangle(50, 50, 50, 50)
e.Graphics.SetClip(clipRect, CombineMode.Replace)
e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0, 0, 500, 500)
End Select
End Sub
按“O”: 按“空格”:
希望对您有所帮助。
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。