2016-06-18 6 views
0

こんにちは私はいくつかのパーソナルプロジェクトに取り組んでいます 私のプロジェクトにはコンボボックス1、コンボボックス2などのコンボボックスがたくさんあります。 doは、それぞれcombobox.text値を取得し、これに基づいていくつかの作業を行います。C#コンボボックス[i]のようなループを使用して値を取得する、i ++

以下は私のコードです。

for (i = 1; i <= geneList.Length; i++) 
     { 

      baserequest = "/" + comboBox[i].Text + ".docx"; 
      sources.Add(new Source(new WmlDocument(basesource + geneList[i] + baserequest), false)); 
baserequest=""; 
      DocumentBuilder.BuildDocument(sources, Path.Combine(tempDi.FullName, "Output.docx")); 

     } 

実際には動作しません。私は検索しましたが、私は何かを誤って探していると思います。なぜなら、私が得ることができるのはアイテムの反復についてですが、私がしたいことはまさにこれです。

コンボボックス[I]の.text

ありがとうございました。

+0

コンボボックスの名前がcomboBox1、comboBox2 ....の場合、comboBox [2]のようなsintaxを使用してcomboBox2を参照することはできません。この構文は、少なくとも3つの要素を含むコンボボックスの配列に格納された3番目のコンボボックスを私に与えます。 – Steve

+0

だから私は何をすることができます、それは私のように書いた場合に動作します baserequest = "/" + comboBox1.Text + ".docx"; ですが、最適化されたソリューションではありません。私はすべてのコンボボックスのためにこのカップルラインを書く必要があります。 – Ozzzy

答えて

0

コンボボックスの名前がcomboBox1,comboBox2の場合は、comboBox[2]という構文を使用してcomboBox2を参照することはできません。この構文では意味..あなたが本当にあなたがどこかでそのコンボボックスの配列を作成する必要があり、この構文を使用したいのであれば

は私にコンボボックスの配列に格納された第3のコンボボックスを与える(そしてそれは、少なくとも3つの要素が含まれている必要があります)あなたのコード。例

public class Form1: Form 
{ 
    // declare the array as a global variable 
    private ComboBox[] combobox; 

    public Form1() 
    { 
     // Create and initialize all the elements of your form 
     // according to the properties set in the WinForms Designer 
     InitializeComponent(); 

     // Choose all the individual comboboxes that you want to use 
     // inside your loops in the remainder of your code 
     combobox = new ComboBox[] { comboBox1, comboBox2, comboBox3 }; 
    } 

    // all the code of your Form1 follows..... 
} 

最終ノートのInitializeComponentを呼び出した後:あなたはあなたのループを作成するために、別の配列を使用します。この配列の名前はgeneListであり、コンボボックス配列と同期させておく必要があります。つまり、2つの配列の要素数が同じでなければなりません(geneList配列がコンボボックスより大きい場合、ArgumentOutOfRangeExceptionを取得します)。また、配列のインデックスは、あなたが今そうであるように、あなたは、配列の最初の要素と最後のループ検索をスキップし、1から開始した場合ので、通常のループが

for (i = 0; i < geneList.Length; i++) 

そうでない場合は、この構文を使用して作成されたインデックス0ない1から始まります存在しない要素に対して

+0

非常にスティーブありがとうございます。それは実際に仕事のようです:) – Ozzzy

+0

注意してください。別の配列を使用して名前付き_geneList_をループし、インデックス1からループを開始します。これは、コンボボックス配列とgeneListが同期していないと非常に危険です(geneList配列はコンボボックス配列より1大きいはずです) – Steve

関連する問題