横に細長いPictureBoxを作り、そこを塗りつぶしたいと考えています。
コントロールの中に文字を表示させるので、反転モード(?)にしたいです。
そこで下記のようなコードを書きました。

Dim frm As Form1 = ActiveForm
Dim intTop As Integer = PicBox1.Top
Dim intLeft As Integer = PicBox1.Left
Dim intWidth As Integer = PicBox1.Width
Dim intHeight As Integer = PicBox1.Height
Dim intDrawWidth As Integer = 50
Dim r As Rectangle = New Rectangle(frm.Left + frm.PicBox1.Left, frm.Top + intTop, intDrawWidth, intHeight)
Dim lngBarColor = Color.FromArgb(0, 0, 128)

ControlPaint.FillReversibleRectangle(r, lngBarColor)

上記のコードだと、塗りつぶされる範囲がPictureBoxの右下にずれてしまいます。
Dim r As Rectangle = New Rectangle(frm.PicBox1.Left, intTop, intDrawWidth, intHeight)
このようなコードも試しましたが、フォームを移動しても
常に左上の方が塗りつぶされてしまいます。
コントロールにぴったり収まる感じで、反転モードで塗りつぶすにはどうしたらよいのでしょうか?