2010-09-09 71 views
0

我想看看我可以如何獲取在此控制檯應用程序中輸入的值以在表單文本框內工作我該怎麼做?從控制檯獲取輸入到一個表格

在控制檯中輸入00000000的例子就好像它是在表單中輸入的一樣,所以我想我希望它們是分開的,但無縫工作任何想法。我無法弄清楚如何讓文本框從控制檯應用程序的Console.Readline()中獲取內容。

這是和實例,我如何想獲得它的工作

alt text

alt text

public static void Main(string[] args) 
    { 
     Console.Write("Enter a valid 10 digit ISBN Number "); 
     string isbn = isbnChecker.DestabilizeIsbn(Console.ReadLine()); // Normalizes the input and puts it on string "str" 
     if (isbn.Length > 10 || isbn.Length < 9) // If the string length is greather than 10, or smaller than 9 
     { 
      Console.WriteLine("The number you have entered is not a valid ISBN try again."); // Print invalid number 
      Console.ReadLine(); 
     } 
     else if (isbn.Length == 10) // If the length is 10 
     { 
      if (isbnChecker.CheckNumber(isbn)) // If function CheckNum return "true"... 
       Console.WriteLine("The number you have entered is a valid ISBN"); 

      else // If it returns "false"... 
       Console.WriteLine("The number you have entered is not a valid ISBN try again."); 
       Console.ReadLine(); 
     } 
     else // Else (If the number is NOT greater than 10 or smaller than 9, NOR is it 10 -> If the number is 9) 
     { 
      Console.WriteLine("The Check digit that corresponds to this ISBN number is " + checkIsbnClass.CheckIsbn(isbn) + "."); // Print the checksum digit 
      Console.ReadLine(); 
     } 



    } 





public static class isbnChecker 
    { 
     public static bool CheckNumber(string isbn) // Checks if the checksum digit is correct 
     { 
      if (isbn[9].ToString() == checkIsbnClass.CheckIsbn(isbn)) // If the 10th digit of the number is the same as the calculated digit... 
       return true; 
      else // If they're not the same... 
       return false; 
     } 
     public static string DestabilizeIsbn(string isbn) // replace the string 
     { 
      return isbn.Replace("-", "").Replace(" ", ""); 
     } 
    } 
    [1]: http://i.stack.imgur.com/bAcDJ.jpg 
    public static string CheckIsbn(string isbn) // Calculates the 10th digit of a 9-digits partial ISBN number 
     { 
      int sum = 0; 
      for (int i = 0; i < 9; i++) // For each number... 
      { 
       sum += int.Parse(isbn[i].ToString()) * (i + 1); // ...Multiply the number by it's location in the string 
      } 
      if ((sum % 11) == 10) // If the remainder equals to 10... 
      { 
       return "x"; // Output X 
      } 
      else // If it does not equal to 10... 
      { 
       return (sum % 11).ToString(); // Output the number 
      } 
     } 
     public static bool CheckNumber(string isbn) // Checks if the checksum digit is correct 
     { 
      if (isbn[9].ToString() == CheckIsbn(isbn)) // If the 10th digit of the number is the same as the calculated digit... 
       return true; 
      else // If they're not the same... 
       return false; 
     } 
     public static string DestabilizeIsbn(string isbn) // replace the string 
     { 
      return isbn.Replace("-", "").Replace(" ", ""); 
     } 

    } 


public partial class IsbnForm : Form 
{ 
public IsbnForm() 
{ 
    InitializeComponent(); 
} 

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    this.xInputTextBox.Text = "Enter a Valid ISBN"; 
} 

}

+0

你想提供一個命令行界面或你的程序圖形界面?在相同的應用程序中都有這兩種情況是非常不尋常的,並且只有一些黑客纔有可能。 – 2010-09-09 13:26:00

+0

我需要提供兩個,就好像他們是一個應用程序,這是在課堂上額外的功勞 – 2010-09-09 13:28:28

回答

1

創建窗體的實例並傳入你存儲的變量whe你在文本框中做一個readline。

IsbnForm form = new IsbnForm(); 

您可以通過幾種方法的文本,通過方法:

//In the IsbnForm class 
public SetTextboxText(String Text) { textbox.text = Text; } 

//In the console application 
form.SetTextboxText(isbn); 

一個變量如:

//In the IsbnForm class 
public String TextboxText { set { textbox.text = value; } } 

//In the console application 
form.TextboxText = isbn; 

或只是讓TextBox控件公衆,然後改變價值通過

//In the console application. 
form.textbox.text = isbn; 

當您顯示錶單時,您需要保持控制檯程序運行,或者通過readline,當表單關閉時可能會斷開的循環,或者可能使用ShowDialog而不是Show。

看看哪一個能夠正常工作,以及你如何期望它工作。

form.Show(); 
Console.Readline(); 

while(FormRunning == false) { } 

form.ShowDialog(); 
相關問題