2016-03-24 9 views
0

私はXMLファイルの値を読んでちょっと固執しています。 XMLのようになります。私は何をしようとしているXMLからテキストを含むCreateNewCheckBox

<?xml version="1.0" encoding="utf-16"?> 
<spfFiles> 
    <file>200_006 xxxxxxx</file> 
    <file>200_010 xxxxxxx</file> 
    <file>200_022 xxxxxxx</file> 
    <file>200_023 xxxxxxx</file> 
    <file>200_024 xxxxxxx</file> 
    <file>200_031 xxxxxxx</file> 
    <file>200_041 xxxxxxx</file> 
</spfFiles> 

は、私は、ファイルごとに新しいチェックボックスをクリートしたいということです。

XmlTextReader xReader = new XmlTextReader("spfFiles_simW.xml"); 
      while (xReader.Read()) 
      { 
       switch (xReader.NodeType) 
       { 
        case XmlNodeType.Text: //Display the text in each element. 
         pnlSPFLIST.Controls.Add(CreateNewCheckBox(xReader.Value)); 
         break; 
       } 
      } 

新しい要素の作成は問題ありません。しかし、私はファイル名に問題があります。各チェックボックスは、スペースの前の部分だけを名前として取得します。たとえば、「200_006」です。私のxmlReaderはどうにかして残りの部分をカットするようです。

編集:私は間違って行ってきたところ誰もがそうここ は私CreateNewCheck

ある
private CheckBox CreateNewCheckBox(string sName) 
     { 
      label1.Text = sName; 
      int iExistingCheckBoxX = 0; 
      int iExistingCheckBoxY = 0; 

      int iIncrementX = 100; 
      int iIncrementY = 20; 

      CheckBox cbNew = new CheckBox(); 

      cbNew.Width = iIncrementX; 

      if (pnlSPFLIST.Controls.Count == 0) 
      { 
       cbNew.Location = new Point(pnlSPFLIST.Location.X, pnlSPFLIST.Location.Y-25); 
      } 
      else 
      { 
       // Existing checkboxes, so get the Location of the last one. 
       iExistingCheckBoxX = pnlSPFLIST.Controls[pnlSPFLIST.Controls.Count - 1].Location.X; 
       iExistingCheckBoxY = pnlSPFLIST.Controls[pnlSPFLIST.Controls.Count - 1].Location.Y; 

       iExistingCheckBoxX = pnlSPFLIST.Location.X; 
       iExistingCheckBoxY = iExistingCheckBoxY + iIncrementY + 10; 

       cbNew.Location = new Point(iExistingCheckBoxX, iExistingCheckBoxY); 

      } 

      // Set the Text property according to the input. 
      cbNew.Text = sName; 

      return cbNew; 
     } 

を知っていますか?

+1

'xReader.Value'が文字列の一部を返すだけで、' CreateNewCheckBox'では何もないと確信していますか? – CodingGorilla

+0

あなたは絶対に正しいです。 label1.Text = xReader.Value; は全体の値を返します。 – mykds

+0

それとコードの更新を考えれば、 'Text'プロパティは単にサイズのために折り返してしまい、テキスト全体を見ることができないのでしょうか? – CodingGorilla

答えて

0

ここに正しい解決策があります。ただ、X-価値を高め、すべてが正常に動作します

private CheckBox CreateNewCheckBox(string sName) 
     { 
      ... 

      int iIncrementX = 300; 
      int iIncrementY = 20; 

      ... 

     } 

: は、私はちょうど私のCreateNewCheckBox-方法を変更しなければなりませんでした。

+0

これは答えではありません。あなたの質問にこれを加えてください。 – CodingGorilla

関連する問題