View Full Version : غیرفعال بودن رویداد Activated
negar222
چهارشنبه 17 شهریور 1395, 10:50 صبح
سلام
چرا بعد از فعال شدن فرم، رویداد Activated اجرا نمیشه؟؟ تو برنامم حتی اول رویداد txtBox1_TextChanged فراخوانی میشه بعد Activated که همش هم Error میده..
خواهشاً از دوستان هرکس میدونه راهنمایی کنه :ناراحت:
barnamenevisjavan
چهارشنبه 17 شهریور 1395, 11:20 صبح
رویداد Activated زمانی اجرا میشه که فوکوس یکبار بیاد روی فرم ، بهتره کدهاتون قرار بدید بهتر بررسی بشه
negar222
چهارشنبه 17 شهریور 1395, 12:19 عصر
کدها:
public static string code = "";
public static string gheymat = "0";
public static string codeKala = "";
private void frmSabteForoosheKala_Load(object sender, EventArgs e)
{
this.tbl_SefareshTableAdapter.Fill(this.dataSet1.t bl_Sefaresh);
this.tbl_factorTableAdapter.Fill(this.dataSet1.tbl _factor);
this.tbl_SefareshTableAdapter.Fill(this.dataSet1.t bl_Sefaresh);
//شماره فاکتور از 1000 شروع بشه
tbl_factorTableAdapter.Fill(dataSet1.tbl_factor);
if (dataSet1.tbl_factor.Rows.Count == 0)
txtShomareFactor.Text = "1000";
else
//به اولین شماره فاکتور یک مقدار اضافه کن (شماره فاکتورها به صورت نزولی مرتب شده)ی
txtShomareFactor.Text = (int.Parse(dataSet1.tbl_factor.Rows[0][0].ToString()) + 1).ToString();
}
private void frmSabteForoosheKala_Activated(object sender, EventArgs e)
{
if (code != "")
{
txtCodeCustomer.Text = code;
code = "";
}
if (codeKala != "")
{
tbl_factorTableAdapter.FillByshomareFactor(dataSet 1.tbl_factor, txtShomareFactor.Text);
// tbl_SefareshTableAdapter.InsertQuery1(txtCodeCusto mer.Text,codeKala,1,decimal.Parse(gheymat),decimal .Parse(gheymat));
if (dataSet1.tbl_factor.Rows.Count == 0)
{
tbl_factorTableAdapter.InsertQuery1(txtShomareFact or.Text, txtCodeCustomer.Text, txtTarikh.Text, "11");
}
tbl_SefareshTableAdapter.InsertQuery1(txtShomareFa ctor.Text, codeKala, 1, decimal.Parse(gheymat), decimal.Parse(gheymat));
codeKala = "";
tbl_SefareshTableAdapter.FillByfactor(dataSet1.tbl _Sefaresh, txtShomareFactor.Text);
}
}
private void txtShomareFactor_TextChanged(object sender, EventArgs e)
{
tbl_factorTableAdapter.FillByshomareFactor(dataSet 1.tbl_factor, txtShomareFactor.Text);
//شماره مشتری را طبق شماره فاکتور در قسمت مربوطه قرار می دهد
txtCodeCustomer.Text = dataSet1.tbl_factor.Rows[0][1].ToString();
txtTarikh.Text = dataSet1.tbl_factor.Rows[0][2].ToString();
tbl_SefareshTableAdapter.FillByfactor(dataSet1.tbl _Sefaresh, txtShomareFactor.Text);
}
ژیار رحیمی
چهارشنبه 17 شهریور 1395, 15:22 عصر
متد Activated بعد از Load اجرا میشه.خب بدلیل این خط از کد که داخل متد Load فرم نوشتی
//به اولین شماره فاکتور یک مقدار اضافه کن (شماره فاکتورها به صورت نزولی مرتب شده)ی
txtShomareFactor.Text = (int.Parse(dataSet1.tbl_factor.Rows[0][0].ToString()) + 1).ToString();
متد TextChanged قبل از متد Activated فراخوانی میشود
negar222
چهارشنبه 17 شهریور 1395, 17:00 عصر
خب بله درست میگید مشکل من اینه که چرا بعد از این خط (قبل از اینکه textchengi صورت بگیره) Textchanged فراخوانی می شه؟؟
There is no row at position 0 این خطا رو در قسمت Textchanged خط 56و57 میده!!!!!:ناراحت:
negar222
چهارشنبه 17 شهریور 1395, 17:45 عصر
با چه کدی میتونم بگم اگر
txtCodeCustomer.Text = dataSet1.tbl_factor.Rows[0][1].ToString();
وجود نداشت پیغام بده؟؟؟
ژیار رحیمی
چهارشنبه 17 شهریور 1395, 21:21 عصر
خب بله درست میگید مشکل من اینه که چرا بعد از این خط (قبل از اینکه textchengi صورت بگیره) Textchanged فراخوانی می شه؟؟
There is no row at position 0 این خطا رو در قسمت Textchanged خط 56و57 میده!!!!!:ناراحت:
چون شما txtShomareFactor.Text رو مقداری رو بهش انتساب دادی پس خاصیت Text ان تغییر میکند پس رویداد TextChanged ان فراخوانی میشود
ژیار رحیمی
چهارشنبه 17 شهریور 1395, 21:25 عصر
با چه کدی میتونم بگم اگر
txtCodeCustomer.Text = dataSet1.tbl_factor.Rows[0][1].ToString();
وجود نداشت پیغام بده؟؟؟
if( dataSet1.tbl_factor.Rows[0]!=null)
{
//شماره مشتری را طبق شماره فاکتور در قسمت مربوطه قرار می دهد
txtCodeCustomer.Text = dataSet1.tbl_factor.Rows[0][1].ToString();
txtTarikh.Text = dataSet1.tbl_factor.Rows[0][2].ToString();
}
negar222
چهارشنبه 17 شهریور 1395, 22:30 عصر
ممنون از راهنماییتون ولی اجرا نشد :ناراحت:
به یه روش دیگه عمل میکنم که مقدار textbox رو مقایسه کنه با آخرین فاکتور موجود ولی چطوری میتونم بگم اگر بزرگتر بود؟
if (txtShomareFactor.Text == (int.Parse(dataSet1.tbl_factor.Rows[0][0].ToString()) + 1).ToString())
ممنون میشم راهنماییم کنید
negar222
چهارشنبه 17 شهریور 1395, 23:29 عصر
ممنون حل شد..
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.