台灣最大程式設計社群網站
線上人數
984
 
會員總數:243984
討論主題:188418
歡迎您免費加入會員
討論區列表 >> C# >> 如何觸發timer.tick事件
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何觸發timer.tick事件
價值 : 100 QP  點閱數:251 回應數:7

樓主

tomas0628
門外漢
0 1
18 3
發送站內信


private void timer1_Tick(object sender, EventArgs e)
{
q = q + o;//若兩數相加=5 則為同花色
if (q == 5)
{
turn[1].Enabled = false;
turn[0].Enabled = false;
s = s + 100;
t = 0;
q = 0;
textBox5.Text = s.ToString();
timer1.Enabled = false;
}
else
{
turn[1].Load("questionmark.png");
turn[0].Load("questionmark.png");
timer1.Enabled = false;
t = 0;
q = 0;


}


s++;
label1.Text = s.ToString();


}

private void pictureBox1_Click(object sender, EventArgs e)
{
int A;
textBox1.Text = card[0].ToString();
A = card[0];
turn[1] = pictureBox1;


switch (A)
{
case 1:
case 4:
pictureBox1.Load("red.png");
t = t + 1;
break;

default:
pictureBox1.Load("black.png");
t = t + 1;
break;
}
//翻牌兩次 則判斷是否相同

if (t == 1)
{
q = card[0];
turn[0] = pictureBox1;

}
else
{
o = card[0];
timer1.Enabled = true;

}




這是一個程式的部分,後面有picture2~4 內容皆相同
我希望可以在t=2時觸發timer.tick事件,讓他判斷q+o是否等於5
但測試過後發現他不會判斷,請問各位大大我是哪裡寫錯了嗎

搜尋相關Tags的文章: [ timer picturebox 翻牌 ] ,
本篇文章發表於2019-01-05 22:22
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
會這樣問表示您的 timer1.enabled=false 或 timer1<>start

所以要在
您要在T=2 時設
timer1.enabled=true
timer1.start

但沒有看到這個動作
本篇文章回覆於2019-01-06 09:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

tomas0628
檢舉此回應

樓上大大您好
我有試著在每個timer1.enabled=true後面加上start
但她還是無法做tick的事件
另外我希望他可以重複執行
所以我有在timer1.enabled=false後面加上stop
不知道這樣對不對
本篇文章回覆於2019-01-06 14:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

P陳
檢舉此回應
case 4:
pictureBox1.Load("red.png");
t = t + 1;
--------------------
要加在這
if t=2 then
timer1.enabled=true
end if
-----------------
break;
本篇文章回覆於2019-01-06 16:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
private void timer1_Tick(object sender, EventArgs e)
-------------------------
在這堨[
timer1.enabled=false
--------------------------
本篇文章回覆於2019-01-06 16:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

tomas0628
檢舉此回應
private void timer1_Tick(object sender, EventArgs e)
{
q = q + o;//若兩數相加=5 則為同花色
if (q == 5)
{
turn[1].Enabled = false;
turn[0].Enabled = false;
s = s + 100;
t = 0;
q = 0;
textBox5.Text = s.ToString();
timer1.Enabled = false;

}
else
{
turn[1].Load("questionmark.png");
turn[0].Load("questionmark.png");
timer1.Enabled = false;

t = 0;
q = 0;

}

}

private void pictureBox1_Click(object sender, EventArgs e)
{
int A;
textBox1.Text = card[0].ToString();
A = card[0];
turn[1] = pictureBox1;

switch (A)
{
case 1:
case 4:
pictureBox1.Load("red.png");
t = t + 1;

break;

default:
pictureBox1.Load("black.png");
t = t + 1;
break;
}
//翻牌兩次 則判斷是否相同

if (t == 2)
{
o = card[0];
timer1.Enabled = true;
}
else
{
q = card[0];
turn[0] = pictureBox1;
}
}

加上大大說得之後好像不能執行
沒有end if
目前程式長這樣
請大大賜教
這程式主要想做的是
先透過random取亂數1~4
再經由每個picturebox.click時 依據載入的亂數取圖片load
1&4為一組 2&3為一組
t是按的次數 若t=2時判斷兩者相加是否=5 若為5則兩者圖片相同
寫timer是想要讓他:若兩者圖片不相同,則讓使用者看,第二次翻錯的那張照片為何,而不是直接載入question.png
以上謝謝大大,本人初入c#,請多見諒
本篇文章回覆於2019-01-06 17:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
最有價值解答

P陳
檢舉此回應
您有單步執行過嗎?
現在是您功力成長的最好時機
您單步執行看看,那堣ㄕX您的預想。
--------------------------------------
而且您這程式不難 用來練功最好
本篇文章回覆於2019-01-07 09:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

tomas0628
檢舉此回應
事後發現為timer_tick出錯
可能是因為前一個timer刪除時沒做好
導致這次的timer_tick變成timer_tick_1
本篇文章回覆於2019-01-10 09:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.