2016-09-23 2 views
-1

Я пытаюсь написать программу, которая, учитывая мой выбор переменных, отображает смайлик на экране.Использование ввода ReadLine для другого метода

Я написал следующее.

Теперь моя программа задает три вопроса, на которые я отвечу цифрами от 0 до 11. Я хотел бы использовать эти ответы в методе tekenscherm. Как я могу назвать эти переменные в этом методе?

class HalloForm : Form 
{ 
    public string a,b,c = ""; //Declare them here. 
    public HalloForm() 
    { 
     this.Text = "Hallo"; 
     this.BackColor = Color.Yellow; 
     this.Size = new Size(800, 600); 
     this.Paint += this.tekenScherm; 
    } 

    public static void Main() 
    { 
     System.Console.WriteLine("Smiley size, on a scale of 1 tot 10?"); 
     string a = System.Console.ReadLine(); 
     Int32.Parse(a); 
     System.Console.WriteLine("X coordinate of the smiley, on a scale of 1 to 10"); 
     string b = System.Console.ReadLine(); 
     Int32.Parse(b); 
     System.Console.WriteLine("Y coordinate of the smiley, on a scale of 1 to 10"); 
     string c = System.Console.ReadLine(); 
     Int32.Parse(c); 
     HalloForm scherm; 
     scherm = new HalloForm(); 

     Application.Run(scherm); 
    } 
    void tekenScherm(object obj, PaintEventArgs pea) 
    { 

     SolidBrush blueBrush = new SolidBrush(Color.Blue); 
     Pen blackBrush = new Pen(Color.Black, 5); 
     int x = 360; 
     int y = x + 75; 
     pea.Graphics.FillEllipse(blueBrush, 300, 200, 200, 200); 
     pea.Graphics.DrawEllipse(blackBrush, 300, 200, 200, 200); 
     pea.Graphics.DrawArc(blackBrush, 350, 250, 100, 100, 45, 90); 
     pea.Graphics.DrawEllipse(blackBrush, a, 250, 5, 5); //I've used it here 
     pea.Graphics.DrawEllipse(blackBrush, y, 250, 5, 5); 
    } 
} 
+1

Это хорошая практика, чтобы назвать все имена переменной/функции (в вашем случае tekenScherm на английском языке: drawScreen). –

+0

Это преимущественно англоязычный сайт, если вам нужна помощь, рекомендуется писать все на английском языке; в тот момент, когда я вижу другой язык, я просто перестаю читать. – Krythic

ответ

0

Объявить эти переменные за пределами области метода как целые числа.

Int32.Parse возвращает целочисленное значение, которое вы не назначаете этим переменным, поэтому оно практически ничего не делает, как вы его используете.

Вот рабочий код:

class HalloForm : Form 
{ 
    public int a, b, c = 0; //Declare them here. 
    public HalloForm() 
    { 
     this.Text = "Hallo"; 
     this.BackColor = Color.Yellow; 
     this.Size = new Size(800, 600); 
     this.Paint += this.tekenScherm; 
    } 

    public static void Main() 
    { 
     System.Console.WriteLine("Smiley size, on a scale of 1 tot 10?"); 
     a = Int32.Parse(System.Console.ReadLine()); 
     System.Console.WriteLine("X coordinate of the smiley, on a scale of 1 to 10"); 
     b = Int32.Parse(System.Console.ReadLine()); 
     System.Console.WriteLine("Y coordinate of the smiley, on a scale of 1 to 10"); 
     c = Int32.Parse(System.Console.ReadLine()); 
     HalloForm scherm; 
     scherm = new HalloForm(); 

     Application.Run(scherm); 
    } 
    void tekenScherm(object obj, PaintEventArgs pea) 
    { 

     SolidBrush blueBrush = new SolidBrush(Color.Blue); 
     Pen blackBrush = new Pen(Color.Black, 5); 
     int x = 360; 
     int y = x + 75; 
     pea.Graphics.FillEllipse(blueBrush, 300, 200, 200, 200); 
     pea.Graphics.DrawEllipse(blackBrush, 300, 200, 200, 200); 
     pea.Graphics.DrawArc(blackBrush, 350, 250, 100, 100, 45, 90); 
     pea.Graphics.DrawEllipse(blackBrush, x, 250, 5, 5); 
     pea.Graphics.DrawEllipse(blackBrush, y, 250, 5, 5); 
    } 
} 
+0

Но как я могу использовать 'a', тогда, например, в pea.Graphics.DrawEllipse (blackBrush, a, 200, 200, 200); ? – Whizkid95

+0

Да, вы сможете использовать их в любом из методов этого класса. – ThePerplexedOne

+0

Я отредактировал свое оригинальное сообщение, используя ваш код. Но это не работает для меня. Нужно ли объявлять 'a' в методе tekenScherm? – Whizkid95

Смежные вопросы