PDA

View Full Version : صدا زدن یه روال به صورت ناخواسته



hesam_dj10
جمعه 11 اردیبهشت 1394, 12:32 عصر
من یه کد نوشتم


if(a==2){

messagebox.show("salam");
}
else
{
a==1;
}



حالا نمیدونم چرا وقتی پیام سلام رو میده برنامه به صورت خودکار روال form closing رو انجام میده
درضمن توی event ها رویداد form closing رو هم پاک کردم ولی جواب نداد، برنامه خودش بسته میشه
چکار کنم که جلوی برنامه رو بگیرم که خودش این روال رو انجام نده

بیتا حکمت
جمعه 11 اردیبهشت 1394, 13:16 عصر
قطعا" یه جایی کد اشتباهی وارد کردین . اگه برنامه اتون با Vs2010 هست ، اتچ کنید مشکل اشو براتون پیدا کنم .

Mr.Csharp
جمعه 11 اردیبهشت 1394, 13:49 عصر
من یه کد نوشتم


if(a==2){

messagebox.show("salam");
}
else
{
a==1;
}



حالا نمیدونم چرا وقتی پیام سلام رو میده برنامه به صورت خودکار روال form closing رو انجام میده
درضمن توی event ها رویداد form closing رو هم پاک کردم ولی جواب نداد، برنامه خودش بسته میشه
چکار کنم که جلوی برنامه رو بگیرم که خودش این روال رو انجام نده
کل کدتون همینه یا کدای دیگه ای هم هست ؟
برنامه رو قرار میدین ؟

hesam_dj10
جمعه 11 اردیبهشت 1394, 16:03 عصر
الته خیر کل کد این نیست و الان هم در دسترس نیست
قبلا پیام سلام رو میداد و هیچ مشکلی نداشت
ولی یهو اینجوری شد
با دیباگ هم پیگیریش کردم .....بعد از نشان دادن پیام خودش بدون هیچ دلیلی میره روال form closing رو انجام میده
اصلن شکه شدم هیچ ربطی به فرم کلوزینگ نداره ولی خودش اجراش میکنه...

hesam_dj10
یک شنبه 13 اردیبهشت 1394, 12:35 عصر
کسی راهی برای جلوگیری از صدا زدن خودکار برنامه برای form closing سراغ نداره

محمد رضا فاتحی
یک شنبه 13 اردیبهشت 1394, 12:50 عصر
اگه event تعریف شده باشه می شه بصورت موقت جلوش رو گرفت در حالی که شما می گید اصلا event در کار نیست
احتمال یه جای کارتون ایراد داره

hesam_dj10
یک شنبه 13 اردیبهشت 1394, 13:06 عصر
ببینید این کد دکمه ای که من وقتی میزنم به از انجام کارش میره form closing رو انجام میده



​ private void button6_Click(object sender, EventArgs e) {






if (maskedTextBox1.Text == " / /" && maskedTextBox2.Text == " / /" && maskedTextBox3.Text == " / /")
{


MessageBox.Show("لطفا تاریخهای مربوطه را تکمیل نمایید");


}
else
{










button6.Enabled = false;

















SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source=192.168.2.15,1433;Network Library=DBMSSOCN;Initial Catalog=fazelab;User ID=hesam;Password=123456";
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT max(daronsn) FROM moshtarak", conn);
label13.Text = Convert.ToString(cmd.ExecuteScalar().ToString());
int a = Convert.ToInt32(label13.Text);
int b = a + 1;
label13.Text = b.ToString();




string sql = "select daronsn from moshtarak where daronsn=" + label13.Text;
cmd.CommandText = sql;
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
MessageBox.Show("این شماره بایگانی قبلا ثبت شده است، لطفا یک بار دیگر امتحان کنید");
button6.Enabled = true;
button6.Visible = true;
dr.Close();












}






else
{
dr.Close();


SqlCommand cm = new SqlCommand("Update moshtarak Set daronsn = @daronsn,date_bayegani=@date_bayegani,karbar_reg = @karbar Where radif=" + textBox1.Text, conn);


cm.CommandType = CommandType.Text;


cm.Parameters.AddWithValue("@daronsn", label13.Text);
cm.Parameters.AddWithValue("@karbar", label26.Text);
cm.Parameters.AddWithValue("@date_bayegani", label27.Text);


//cm.ExecuteNonQuery();


textBox1.SelectAll();






button6.Visible = false;
dr.Close();
cm.ExecuteNonQuery();
button6.Enabled = false;
conn.Close();


int aa = Convert.ToInt32(label23.Text);
int bb = aa + 1;
label23.Text = bb.ToString();











}




















textBox1.SelectAll();


textBox1.Select();






















}
}

بیتا حکمت
یک شنبه 13 اردیبهشت 1394, 13:30 عصر
احتمالاتی که به ذهنم می رسه :

من چند سال پیش دچار همچین مشکلی شدم ، اخرش هم متوجه شدم به کدم هیچ ربطی نداره ،
از منوی build گزینه clean solution رو انتخاب بزنید . بعدش از همون منو rebuild solution رو انتخاب کنید .


مورد دومی که ممکنه همچنین مشکلی پیش بیاد اینکه کدی در فرم رویداد Activated باشه و از چشم برنامه نویس پنهان بمونه . مثلا" یه متغیر سراسری داشته باشیم




public int i = 0;


تو رویداد Activate این کد رو داشته باشیم




private void Form1_Activated(object sender, EventArgs e)
{
if (i==10)
this.Close();

}



و یک باتن داشته باشیم که در رویداد کلیکش این کد هست




private void button1_Click(object sender, EventArgs e)
{
i = 10;
MessageBox.Show(i.ToString());
}



با وجودی که رویداد Closing فرم چیزی نوشته نشده ولی با کلیک روی باتن ، این رویداد اجرا میشه و بعد نمایش پیغام برنامه بسته میشه .

hesam_dj10
یک شنبه 13 اردیبهشت 1394, 14:12 عصر
احتمالاتی که به ذهنم می رسه :

من چند سال پیش دچار همچین مشکلی شدم ، اخرش هم متوجه شدم به کدم هیچ ربطی نداره ،
از منوی build گزینه clean solution رو انتخاب بزنید . بعدش از همون منو rebuild solution رو انتخاب کنید .


مورد دومی که ممکنه همچنین مشکلی پیش بیاد اینکه کدی در فرم رویداد Activated باشه و از چشم برنامه نویس پنهان بمونه . مثلا" یه متغیر سراسری داشته باشیم




public int i = 0;


تو رویداد Activate این کد رو داشته باشیم




private void Form1_Activated(object sender, EventArgs e)
{
if (i==10)
this.Close();

}



و یک باتن داشته باشیم که در رویداد کلیکش این کد هست




private void button1_Click(object sender, EventArgs e)
{
i = 10;
MessageBox.Show(i.ToString());
}



با وجودی که رویداد Closing فرم چیزی نوشته نشده ولی با کلیک روی باتن ، این رویداد اجرا میشه و بعد نمایش پیغام برنامه بسته میشه .

یا خدا
تفریبا همینجوری که گفتین بود
من توی فرم قبلی (فرم ورود)گفتم که این فرمم باز شه و فرم ورود بسته شه
برنامه اول میره فرم دوم رو باز میکنه و دیگه ادامه نمیده...و فرم دوم باز میشه
بعد باتن 6 رو کلیک میکنم (کدش رو براتون گذاشتم) کد که اجرا میشه و بعد پیام رو میده و ..... جالبه که میره ادامه کد قبلی رو اجرا میکنه یعنی(this.close(()و ... ادامه ماجرا......