Я работаю над проектом C#, и я хочу изменить местоположение стрелки, нажав клавишу ENTER с различным размером итерации для разных вариантов comboBox. На самом деле это работает, но проблема в том, что я не могу обновить форму до изменения выбора comboBox. Я хочу видеть итерацию шаг за шагом, но она движется, если я изменю выбор comboBox. Вот код:Измените местоположение стрелки, нажав клавишу ENTER
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
this.BackColor = Color.Black;
label1.ForeColor = Color.Silver;
label1.Text = "Environment is Space";
pictureBox2.Image = list.Images[4];
t = 100; // iteration amount
}
else if (comboBox1.SelectedIndex == 1)
{
this.BackColor = Color.PaleTurquoise;
label1.Text = "Environment is Water";
pictureBox2.Image = list.Images[3];
t = 50; // iteration amount
}
else if (comboBox1.SelectedIndex == 2)
{
this.BackColor = Color.DarkGoldenrod;
label1.ForeColor = Color.Firebrick;
label1.Text = "Environment is Honey";
pictureBox2.Image = list.Images[2];
t = 20; // iteration amount
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
// Drawing arrow
Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255), 8);
pen.StartCap = LineCap.ArrowAnchor;
pen.EndCap = LineCap.RoundAnchor;
e.Graphics.DrawLine(pen, x+50, 200, x, 200);
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
// pressed Enter => change x
if (e.KeyChar == (char)Keys.Return)
{
e.Handled = true;
if (x < y)
{
x += t;
}
}
}
Чтобы быть более ясным: Я хочу люблю: Нажать на> Enter + MOVE-> Стрелка + Нажать на> Enter + Move -> Стрелка
Сейчас она работает, как: Нажать на > Enter + Change-> comboBox + Move-> Arrow
Спасибо большое!
Массив - это логическая структура данных, я не уверен, как вы ее перемещаете. Можете ли вы представить полный компилируемый пример, поскольку ваше описание не очень ясное. –
Я планировал написать стрелу вместо массива, извините. Я редактировал вопрос. – SYG