私と私の限られた経験がわからないという問題があります。Forループを使用して重複をチェックする - エラーエラーは次のとおりです。オブジェクト参照がオブジェクトのインスタンスに設定されていません
私は、(5)ディスプレイシステムを使用するゲームショーシステム用のマルチディスプレイ(フォーム)プログラムを持っています。私はこのプロジェクトをラップしているので、いくつかのハウスを保守し、いくつかの潜在的なユーザーエラーをフロントで処理しています。
この例の場合:GameSetup
というフォームがあり、ドロップダウンメニューには「チーム」というデータベースを選択して入力します。 Team
が選択されると、(10)のラベルには登録されたチームメンバーが配置されます。ユーザはチームメンバー(すなわちプレイヤ)を(6)のラベルのグループにドラッグアンドドロップすることにより、ゲームのためのアクティブなチームを構成する。
問題:重複していないことを確認するために、アクティブチームのチーム名に名前が追加されたときにチェックしたかったのです。これを行う最もクリーンな方法は、アクティブプレイヤーレーベルのアクションにあり、For
ループを使用して他のアクティブなチームプレーヤーの名前を確認することだと私は考えました。私は、フォームの前に、(デバグ)GameSetup
負荷、私は、ヌル例外を取得していますが、プログラムを実行すると、それは文句を言わない(この例では)それ自体に対して
を比較するよう
Private Sub lblT1_P1_TextChanged(sender As Object, e As EventArgs) Handles lblT1_P1.TextChanged
cmdReady.BackColor = Color.Yellow
For i = 1 To 6
If i = 1 Then
' Do nothing
ElseIf Me.Controls("lblT1_P" & i.ToString).Text = lblT1_P1.Text Then 'This is the line triggering the NullException
MsgBox("This Player is already selected. Please choose another Player", MsgBoxStyle.OkOnly)
Me.Controls("lblT1_P" & i.ToString).Text = "DRAG PLAYER HERE" 'This is the other line triggering the NullException
End If
Next i
End Sub
i = 1 Do Nothing
Me.Controls
が問題ですが、Forループで整数(i)を使用する方法を扱う方法がわかりません。
ラベル名がlblT1_P1
れる - 各グループのlblT1_P6
(3インスタンス(T1/T2/T3)私は現時点でT1_P1
を扱ってい
任意の提案は非常に高く評価されるであろう
ありがとう!以前はFindControlを使用していませんでした。それはDirectCastのメンバーですか、クラスで宣言する必要がありますか? –
@ChrisLink [DirectCast](https://msdn.microsoft.com/en-us/library/7k6y2h6x.aspx)と[FindControl](https://msdn.microsoft.com/en-us/library/31hxzsdw)を参照してください。 (v = 1.10).aspx) – Reshma