を使用してフォームを作成DataRepeater
し、クラスに逆シリアル化する XML ファイルを持っています。dataset
次に、クラスを表すを作成しました。を にバインドdataset
しますDataRepeater
。また、いくつかのラベルとテキスト ボックスを作成し、それらをデータセットの適切なデータにバインドしました。
コードは次のとおりです。
TagLabel.DataBindings.Add("Text", ds, "Tag");
PrecedenceLabel.DataBindings.Add("Text", ds, "Precedence");
DataTypeLabel.DataBindings.Add("Text", ds, "DataType");
LengthLabel.DataBindings.Add("Text", ds, "Length");
ValueTextBox.DataBindings.Add("Text", ds, "Value");
MaxTextBox.DataBindings.Add("Text", ds, "Maximum");
MinTextBox.DataBindings.Add("Text", ds, "Minimum");
OverflowTextBox.DataBindings.Add("Text", ds,"OverflowBehaviour");
bindingsource.DataSource = ds;
dataRepeater.DataSource = bindingsource;
dataRepeater.DataMember = "Preference";
この後、 isValueTextbox
なら非表示にしたい。コードは次のとおりです。DataTypeLebel
"Autoinrement"
for (int i = 0; i < dataRepeater.ItemCount; i++)
{
dataRepeater.CurrentItemIndex = i;
if (((Label)dataRepeater.CurrentItem.Controls["DataTypeLabel"]).Text == "AutoIncrement")
{
((TextBox)dataRepeater.CurrentItem.Controls["ValueTextBox"]).Visible = false;
}
}
これを実行してプロジェクトを実行した後、この場合は XML ファイルによると、データ リピーター行 5 だけがValueTextBox
非表示になっていると予想されます。ただし、フォームをスクロールすると。invisible を示す他の行がいくつか表示されVallueTextBox
ます。上下にスクロールすると、非表示のテキストボックスがいたるところにあるとさらに悪化します。誰かが私が間違ったことを提案できますか?
また、仮想モードを試してコントロールを更新し、イベント ハンドラーの条件に基づいてテキスト ボックスを非表示にするdataeRepeater_itemValueNeeded
と、同じ問題が発生します。