2013-04-30 79 views
0

我有一個程序可以獲取我的計算機上的系統信息,並且我希望它能夠比較另一臺計算機上的信息系統,如果參數相同,那麼我會寫一條消息「匹配「如果他們不是我的不一致,我的程序更好地工作時,我使用文本框的像下面這樣在標籤中顯示消息而不是文本框

private void button1_Click(object sender, EventArgs e) 
     { 
      System.OperatingSystem OS = System.Environment.OSVersion; 
      GetSystemInfo(ref n); 

      string processor; 
      switch (n.processorArchitecture) 
      { 
       case 0: processor = "Intel(x84)"; 
        break; 
       case 9: processor = "AMD or Intel (x64)"; 
        break; 
       default: processor = "Unknown"; 
        break; 
      } 
      textBox10.Text = processor; 
      textBox11.Text = Convert.ToString(n.pageSize); 
      textBox12.Text = Convert.ToString(n.minimumApplicationAddress); 
      textBox13.Text = Convert.ToString(n.maximumApplicationAddress); 
      textBox14.Text = Convert.ToString(n.activeProcessorMask); 
      textBox15.Text = Convert.ToString(n.numberOfProcessors); 
      textBox16.Text = Convert.ToString(n.processorType); 
      textBox17.Text = Convert.ToString(n.processorLevel); 
      textBox18.Text = Convert.ToString(n.processorRevision); 

      int k = 13; 

      for (int i = 9, j = 10; i > 0 && j < 19; i--, j++) 
      { 
       if (this.Controls["textBox" + i.ToString()].Text == this.Controls["textBox" + j.ToString()].Text) 
        { 

         this.Controls["label" + k.ToString()].Visible = true; 
         this.Controls["label" + k.ToString()].Text = "VS"; 
         this.Controls["label" + k.ToString()].ForeColor = Color.DarkGreen; 
        } 
        else 
        { 
         this.Controls["label" + k.ToString()].Visible = true; 
         this.Controls["label" + k.ToString()].Text = "X"; 
         this.Controls["label" + k.ToString()].ForeColor = Color.Red; 
        } 


       k++; 
      } 

      Check(); 




     } 

     private void textBox8_TextChanged(object sender, EventArgs e) 
     { 
      if (textBox8.Text == textBox11.Text) 
      { 
       label14.Text = "VS"; 
       label14.ForeColor = Color.DarkGreen; 
      } 
      else 
      { 
       label14.Text = "X"; 
       label14.ForeColor = Color.Red; 
      } 
      Check(); 
     } 

這是我的檢查功能

public void Check() 
     { 
      if (label13.Text == "VS" && label14.Text == "VS" && label15.Text == "VS" && label16.Text == "VS" && label17.Text == "VS" && label18.Text == "VS" && label19.Text == "VS" && label20.Text == "VS" && label21.Text == "VS") 
      { 
       label3.Text = "matches"; 
       label3.ForeColor = Color.DarkGreen; 
       label3.Visible = true; 
      } 
      else 
      { 

       label3.Text = "inconsistencies"; 
       label3.ForeColor = Color.Red; 
       label3.Visible = true; 
      } 
     } 

wthe上面的代碼工作完美,但這樣的IM只是一個新手我有點想嘗試使用標籤和我陳GED我的代碼到這個

private void button1_Click(object sender, EventArgs e) 
     { 
      System.OperatingSystem OS = System.Environment.OSVersion; 
      GetSystemInfo(ref n); 

      string processor; 
      switch (n.processorArchitecture) 
      { 
       case 0: processor = "Intel(x84)"; 
        break; 
       case 9: processor = "AMD or Intel (x64)"; 
        break; 
       default: processor = "Unknown"; 
        break; 
      } 
      label10.Text = processor; 
      label11.Text = Convert.ToString(n.pageSize); 
      label12.Text = Convert.ToString(n.minimumApplicationAddress); 
      label13.Text = Convert.ToString(n.maximumApplicationAddress); 
      label14.Text = Convert.ToString(n.activeProcessorMask); 
      label15.Text = Convert.ToString(n.numberOfProcessors); 
      label16.Text = Convert.ToString(n.processorType); 
      label17.Text = Convert.ToString(n.processorLevel); 
      label27.Text = Convert.ToString(n.processorRevision); 

      int k = 13; 

      for (int i = 9, j = 10; i > 0 && j < 19; i--, j++) 
      { 
       if (this.Controls["label" + i.ToString()].Text == this.Controls["label" + j.ToString()].Text) 
       { 

        this.Controls["label" + k.ToString()].Visible = true; 
        this.Controls["label" + k.ToString()].Text = "VS"; 
        this.Controls["label" + k.ToString()].ForeColor = Color.DarkGreen; 
       } 
       else 
       { 
        this.Controls["label" + k.ToString()].Visible = true; 
        this.Controls["label" + k.ToString()].Text = "X"; 
        this.Controls["label" + k.ToString()].ForeColor = Color.Red; 
       } 


       k++; 
      } 

      Check(); 

     } 

private void label11_TextChanged(object sender, EventArgs e) 
     { 
      if (label11.Text == label29.Text) 
      { 
       label19.Text = "VS"; 
       label19.ForeColor = Color.DarkGreen; 
      } 
      else 
      { 
       label19.Text = "X"; 
       label19.ForeColor = Color.Red; 
      } 
      Check(); 
     } 

,這是乳寧,但結果是不正確的,從計算機的參數沒有被表上顯示在此先感謝

+0

你仍然需要使用文本框的輸入字段。標籤值不能被用戶通過寫入文本框來改變。 – juanreyesv 2013-04-30 05:41:32

回答

0

最大的可能是以下功能:

private void label11_TextChanged(object sender, EventArgs e) 

未被綁定到Label,其編號爲label11

,以確保它勢必在Load事件的形式寫出下面的代碼:

label11.OnTextChanged +=label11_TextChanged; 
相關問題