選択したインデックスから 1 行下にある画像が My.Resources.NONE と等しいかどうかをチェックするコード (pictureboxes の 2D 配列) がここにあります。次に、true の場合、2 つのインデックス間でイメージ スワップを実行します。ここでの問題は、それが正しく検出されないことです。
If mypic(x + 1, y).Image Is My.Resources.NONE Then
mypic(x + 1, y).Image = mypic(x, y).Image
mypic(x, y).Image = My.Resources.NONE
End If
If ステートメントを削除すると、クリックしたすべての画像で正常に機能します。私の問題は、選択されている画像の下の画像に My.Resources.NONE の画像値がある場合にのみ、スワップを実行することです。なぜこれが機能しないのでしょうか?If ステートメントは、真であるように見えますが、決して真ではないようです。
アップデート:
My.Resources.NONE の使用をやめ、単に「Nothing」の使用を開始しました
If mypic(x + 1, y).Image Is Nothing Then
mypic(x + 1, y).Image = mypic(x, y).Image
mypic(x, y).Image = Nothing
End If
if ステートメントの最初の行を除いて動作するようになりました。mypic(x + 1, y).Image を mypic(x, y).image に設定していません。