타이머를 사용하여 타이머에 의해 지정된 시간 동안 그림 상자에서 수행하는 클릭 위치를 기록합니다. 다음 단계로 PictureBox에서 칠한 작은 원을 표시하기 위해 PictureBox 페인트 이벤트를 추가했습니다. 완벽하게 작동하지만 타이머 틱은 어떻게 든 비활성화됩니다.타이머 틱 이벤트는 Picturebox 페인트 이벤트에 의해 자동으로 비활성화됩니다.
this.timer1 = new System.Windows.Forms.Timer();
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.pictureBox1.Image = global::Omers_project.Properties.Resources.img_002;
this.pictureBox1.Location = new System.Drawing.Point(282, 158);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(694, 492);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
: 여기
this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
가의 InitializeComponent에서 타이머 1과 picturebox1 설정() 함수입니다 : 다음 나는 형태의 InitializeComponent를() 함수에서 다음 줄을 주석 경우, 타이머가 작동하기 시작 것을 발견 또한 Timer1_Click 및 PictureBox1_Click 기능은 아래와 같습니다 : 나는 한 번에 그 중 하나를 사용하지만 모두 functionaliti를 사용할 수 없습니다 수 있습니다
따라서
private void timer1_Tick(object sender, EventArgs e)
{
passes--;
textBox_time_passed.Text = passes.ToString();
if (passes == 0)
{
timer1.Stop();
MessageBox.Show("Time is up");
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
MouseEventArgs eM = (MouseEventArgs)e;
temp_storage.x = eM.X;
temp_storage.y = eM.Y;
myList.Add(temp_storage);
count++;
textBox6.Text = Convert.ToString(count);
}
동시에. 이 문제를 해결하는 데 도움을주십시오.
타이머를 어떻게 만드는지 보여주십시오. –
동일한 그림 상자에 대한 타이머 문 액세스? 그림 상자와 관련된 타이머 코드를 포함시킬 수 있습니까? 또는 내부 또는 시간에 Paint 이벤트에 그림 상자에 액세스하는 부분을 위임하려고합니까? –
다음은 InitializeComponent() 함수에서 타이머를 만들고 설정하는 코드의 일부입니다. this.timer1 = new System.Windows.Forms.Timer(); this.timer1.Interval = 1000; this.timer1.Tick + = new System.EventHandler (this.timer1_Tick); – Mani