0

ここから取得したwinformアプリケーション用のmarquetoolがありました

そして、私はそのコントロールを次のコードを使用して Textelement を追加できます

MarqueControl.Entity.TextElement textElement1 = 
    new MarqueControl.Entity.TextElement("TextElement 1");
MarqueControl.Entity.TextElement textElement2 = 
    new MarqueControl.Entity.TextElement("TextElement 2");
MarqueControl.Entity.TextElement textElement3 = 
    new MarqueControl.Entity.TextElement("TextElement 3");
superMarquee1.Elements.AddRange(new MarqueControl.Entity.TextElement[] 
               {
                   textElement1,
                   textElement2,
                   textElement3
               }

しかし、問題は、 datatable から textelement を埋めなければならなかったことです。私はこのようにしました

   for(int i=0;i<dt.Rows.Count ;i++){
                String wholetext = dt.Rows[i][1].ToString() + "--" + dt.Rows[i][1].ToString();
            //    String textElement="textElement"+i.ToString();

                TextElement element = new TextElement(wholetext);

                MarqueControl.Entity.TextElement textElement1 = 
    new MarqueControl.Entity.TextElement("wholetext");
            }

問題は、同じテキスト textelemt が更新されるたびに発生します。つまり、テキスト要素に別の識別子を作成できる場合にのみ解決されます。誰でもループ内で変数名を変更する方法を提案できますか

4

2 に答える 2

1
// creation
var marqueeList = new List<MarqueControl.Entity.TextElement>();

for (int i = 1; i<=3; i++)
{
  marqueeList.Add(new MarqueControl.Entity.TextElement("TextElement "+i));
}

// usage
for(int i=0;i<dt.Rows.Count ;i++)
{
  String wholetext = [here is your retrieving code];
  marqueeList[0] = new MarqueControl.Entity.TextElement(wholetext); // 0 = first item
  // OR:
  marqueeList[i] = new MarqueControl.Entity.TextElement(wholetext);
}
于 2013-05-13T12:59:53.283 に答える
0

あなたがやろうとしていることかどうかはわかりませんが、これを試してみることはできますか?

List<TextElement> list = new List<TextElement>();
for(int i = 0; i < dt.Rows.Count; i++)
{
    String wholetext = dt.Rows[i][1].ToString() + "--" + dt.Rows[i][1].ToString();

    list.Add(new TextElement(wholetext));
 }
 superMarquee1.Elements.AddRange(list.ToArray());
于 2013-05-13T12:58:49.940 に答える