Vb.net 如何使用键控事件筛选矩形?

Vb.net 如何使用键控事件筛选矩形?,vb.net,forms,Vb.net,Forms,太阳仍在地平线上。从奥地利巴登7:43开始,我试图用一些额外的例子来提到我的滴度问题。 遵循Window10环境构建19041.985 Visual Studio社区版本4.8.04084, Logitech Deluxe 250键盘的预定义键不会使用visual basic方法进行更改 Sub Kein_Stress_beim_Essen(e As KeyEventArgs) Select Case e.KeyCode Case Keys.Spa

太阳仍在地平线上。从奥地利巴登7:43开始,我试图用一些额外的例子来提到我的滴度问题。 遵循Window10环境构建19041.985 Visual Studio社区版本4.8.04084, Logitech Deluxe 250键盘的预定义键不会使用visual basic方法进行更改

    Sub Kein_Stress_beim_Essen(e As KeyEventArgs)
        Select Case e.KeyCode
            Case Keys.Space
                Dim Kautchuj As Drawing.Graphics = Me.CreateGraphics
                Kautchuj.DrawRectangle(New Pen(Color.PaleGreen, 2), 250, 150, 100, 50)
        End Select
    End Sub
。 为了加强体育锻炼的总和,将sholder bladebones拉到日出平衡,直到在需要它们的地方毫无遗憾地向后推,DrawRectangle设置了form属性CreateGraphics。 对于我要搜索的多个属性,可以设置为将Me.KeyUp委托与事件文档链接的GDI+对象。 在我个人的辩论中,我用一个额外的十字架来开始和结束偶数、奇数的辩论

我尝试在case Keys.Space中筛选一个矩形。虽然CreateGraphics在visual basic中用于矩形对象控件的目标,但我可以想象一个绘制事件,但不知道关键事件是否也可以用于对象

我有一个搜索模式将运算符连接到一个未命名的函数。不可能所有的东西都是对象。即使是一些能量运动。为了达到目的,我对预定义的颜色名称进行淡入淡出,以构建枚举命名约定。字典中的一些头脑风暴词有委托、事件参数、元组、键、选择、属性、方法和实例


我不想使用新字体,因为ime替换对我来说不是一个额外的信息。

您似乎在询问如何在
键控事件上绘制方框。在这种情况下,下面是一个快速演示,演示如何执行此操作:

私有只读点作为新列表(点的列表)
作为新随机变量的专用只读rng
Private Const BOX_维度为整数=10
私有子表单1u KeyUp(发送方作为对象,e作为KeyEventArgs)处理MyBase.KeyUp
选择Case e.KeyCode
箱子钥匙,空格
'在随机位置绘制一个新框。
Dim x=rng.Next(ClientSize.Width)
尺寸y=rng.Next(ClientSize.Height)
点。添加(新点(x,y))
'仅重新绘制新长方体将占用的区域。
无效(新矩形(x,y,长方体尺寸+1,长方体尺寸+1))
箱子钥匙,逃跑
'删除所有框。
要点
“重新粉刷整个表单。
使无效
结束选择
端接头
私有子表单1_Paint(发送方作为对象,e作为PaintEventArgs)处理Me.Paint
'在每个位置绘制一个框。
对于每个点中的每个点
e、 图形.绘图矩形(画笔.红色,点.X,点.Y,方框尺寸,方框尺寸)
下一个
端接头

如您所见,所有绘图都是在
Paint
事件处理程序中完成的。
KeyUp
事件处理程序更新表示图形的数据,然后强制重新绘制。

我不确定您想说什么。这似乎是翻译不好的结果。如果您询问如何使用GDI+绘制,请仅在
Paint
事件中进行。调用
Invalidate
引发事件并指定要重新绘制的区域,然后在
Paint
事件处理程序或重写的
OnPaint
方法中进行绘制。可能,无效是从矩形paintevent读取的。也许不是!作为屏幕一部分的结构矩形的实例,方法drawrectangle,已经“准备好”使用keyevent失效。在复制和粘贴上面的解码表单代码之前,我需要知道:是否可以只使用矩形结构实例而不使用无效上下文?我不知道你在问什么。我展示的方法是正确的。按照我展示的方式来做。上面发布的内容使我的开发更容易。但我还需要一个例子来了解为什么要使用invalidate。我是否必须使帧失效,或者是否可以在不失效的情况下以keyup事件开始?您已经有了为什么使用
invalidate
的示例,因为它包含在上面的代码中。将表示图形的数据存储在一个或多个字段中。在
Paint
事件中,从该字段读取数据并使用它绘制图形。当图形需要更改时,可以更新字段中的数据,并调用
Invalidate
强制执行
Paint
事件。使尽可能小的区域无效以保持重新绘制的最小值,如果整个控件已经或可能已经更改,则只调用
Invalidate
,不带任何参数。要了解没有特定几何体绑定的无效“过程”,我开始将
Dim x,y=200
通过
Public Sub New()替换为我。Size=New Point(600600)带端接头的端部