Shapeが表示されない
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2023/8/3 00:31:44
> 2022に移行した際にMicrosoft.VisualBasic.PowerPacksがなくエラーが発生していたので
VS2019 までは、開発環境が 32bit だったのですが
VS2022 からは 64bit になったこともあり、
LineShape
OvalShape
RectangleShape
については、デザイナ 画面のサポートを受けられなくなりました。
今となっては、RectangleShape の利用は避けることをお奨めします。
まぁ、デザイナサポートを諦めて、手動でコーディングする分には使えなくも無いのですが…。
> 参照追加したらエラーが解消されたのですがShapeが表示されません。
そのライブラリをどこから入手しましたか?
VB2013 以降向けの Visual Basic PowerPacks 12.0 であれば下記から入手できますが、
こちらは Microsoft.VisualStudio.Shell.9.0 に依存していることもあり、VS2022 では使えません。
http://go.microsoft.com/fwlink/?LinkId=321343
nuget からだと
https://www.nuget.org/packages/VisualBasic.PowerPacks.Vs/
というのがあります。これは Visual Basic PowerPacks 10.0 相当のものであり、
やはり VS2022 からだとデザイン時サポートがありません。
(DataRepeater や PrintForm は追加されますが)
Microsoft.VisualBasic.PowerPacks.Vs (9.0) であれば、
VS2022 でも動作する可能性がありますが、いずれにしても現時点での入手は困難でしょう。
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\VBPowerPacks\ja\VisualBasicPowerPacksSetup.exe
> 参照追加したらエラーが解消されたのですがShapeが表示されません。
Location や Size は指定されていますが、
実際にフォーム上に配置し忘れているのだと思います。
ShapeContainer が存在するかどうか、再確認してみてください。
VS2019 までは、開発環境が 32bit だったのですが
VS2022 からは 64bit になったこともあり、
LineShape
OvalShape
RectangleShape
については、デザイナ 画面のサポートを受けられなくなりました。
今となっては、RectangleShape の利用は避けることをお奨めします。
まぁ、デザイナサポートを諦めて、手動でコーディングする分には使えなくも無いのですが…。
> 参照追加したらエラーが解消されたのですがShapeが表示されません。
そのライブラリをどこから入手しましたか?
VB2013 以降向けの Visual Basic PowerPacks 12.0 であれば下記から入手できますが、
こちらは Microsoft.VisualStudio.Shell.9.0 に依存していることもあり、VS2022 では使えません。
http://go.microsoft.com/fwlink/?LinkId=321343
nuget からだと
https://www.nuget.org/packages/VisualBasic.PowerPacks.Vs/
というのがあります。これは Visual Basic PowerPacks 10.0 相当のものであり、
やはり VS2022 からだとデザイン時サポートがありません。
(DataRepeater や PrintForm は追加されますが)
Microsoft.VisualBasic.PowerPacks.Vs (9.0) であれば、
VS2022 でも動作する可能性がありますが、いずれにしても現時点での入手は困難でしょう。
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\VBPowerPacks\ja\VisualBasicPowerPacksSetup.exe
> 参照追加したらエラーが解消されたのですがShapeが表示されません。
Location や Size は指定されていますが、
実際にフォーム上に配置し忘れているのだと思います。
ShapeContainer が存在するかどうか、再確認してみてください。
Me.Controls.Add(Me.ShapeContainer1)
Me.ShapeContainer1.Shapes.Add(Me.Shape1)
投稿者 FC  (社会人)
投稿日時
2023/8/3 09:22:13
回答ありがとうございます。
Visual Basic PowerPacks 10.0 を参照追加しました。
デザイナ 画面のサポートを受けられないとのことなので何か代替案を考えます。
Me.Controls.Add(Me.ShapeContainer1)が未記入だったので追加したのですが表示はされませんでした。
下記は記入済み
ShapeContainer1.Shapes.AddRange(New Microsoft.VisualBasic.PowerPacks.Shape() {Me.Shape1,Me.Shape2}
Visual Basic PowerPacks 10.0 を参照追加しました。
デザイナ 画面のサポートを受けられないとのことなので何か代替案を考えます。
Me.Controls.Add(Me.ShapeContainer1)が未記入だったので追加したのですが表示はされませんでした。
下記は記入済み
ShapeContainer1.Shapes.AddRange(New Microsoft.VisualBasic.PowerPacks.Shape() {Me.Shape1,Me.Shape2}
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2023/8/3 10:37:58
画面解像度は 100% ですか? それとも 125%、150% などの高解像度環境ですか?
手元の環境で、VisualBasic.PowerPacks.Vs を nuget して、
VS2022 上で試しましたが、最初の質問にあった Shape1 が
指定された通りの座標に表示されています。
手元の環境で、VisualBasic.PowerPacks.Vs を nuget して、
VS2022 上で試しましたが、最初の質問にあった Shape1 が
指定された通りの座標に表示されています。
Public Class Form1
Public WithEvents Shape1 As Microsoft.VisualBasic.PowerPacks.RectangleShape
Protected Overrides Sub OnLoad(e As EventArgs)
Me.Shape1 = New Microsoft.VisualBasic.PowerPacks.RectangleShape()
Me.Shape1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
Me.Shape1.BackStyle = Microsoft.VisualBasic.PowerPacks.BackStyle.Opaque
Me.Shape1.BorderColor = System.Drawing.SystemColors.WindowText
Me.Shape1.FillColor = System.Drawing.Color.Black
Me.Shape1.Location = New System.Drawing.Point(200, 500)
Me.Shape1.Name = "Shape1"
Me.Shape1.Size = New System.Drawing.Size(100, 100)
Dim ShapeContainer1 As New Microsoft.VisualBasic.PowerPacks.ShapeContainer()
ShapeContainer1.Shapes.Add(Me.Shape1)
Me.Controls.Add(ShapeContainer1)
MyBase.OnLoad(e)
End Sub
End Class
下記についてご教示願います。
2022に移行した際にMicrosoft.VisualBasic.PowerPacksがなくエラーが発生していたので
参照追加したらエラーが解消されたのですがShapeが表示されません。
記述は下記のみになります。
Public WithEvents Shape1 As Microsoft.VisualBasic.PowerPacks.RectangleShape
Me.Shape1 = New Microsoft.VisualBasic.PowerPacks.RectangleShape()
Me.Shape1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
Me.Shape1.BackStyle = Microsoft.VisualBasic.PowerPacks.BackStyle.Opaque
Me.Shape1.BorderColor = System.Drawing.SystemColors.WindowText
Me.Shape1.FillColor = System.Drawing.Color.Black
Me.Shape1.Location = New System.Drawing.Point(200, 500)
Me.Shape1.Name = "Shape1"
Me.Shape1.Size = New System.Drawing.Size(100, 100)