سلام
چرا بعد از فعال شدن فرم، رویداد Activated اجرا نمیشه؟؟ تو برنامم حتی اول رویداد txtBox1_TextChanged فراخوانی میشه بعد Activated که همش هم Error میده..
خواهشاً از دوستان هرکس میدونه راهنمایی کنه :ناراحت:
Printable View
سلام
چرا بعد از فعال شدن فرم، رویداد Activated اجرا نمیشه؟؟ تو برنامم حتی اول رویداد txtBox1_TextChanged فراخوانی میشه بعد Activated که همش هم Error میده..
خواهشاً از دوستان هرکس میدونه راهنمایی کنه :ناراحت:
رویداد Activated زمانی اجرا میشه که فوکوس یکبار بیاد روی فرم ، بهتره کدهاتون قرار بدید بهتر بررسی بشه
کدها:
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);
}
متد Activated بعد از Load اجرا میشه.خب بدلیل این خط از کد که داخل متد Load فرم نوشتی
//به اولین شماره فاکتور یک مقدار اضافه کن (شماره فاکتورها به صورت نزولی مرتب شده)ی
txtShomareFactor.Text = (int.Parse(dataSet1.tbl_factor.Rows[0][0].ToString()) + 1).ToString();
متد TextChanged قبل از متد Activated فراخوانی میشود
خب بله درست میگید مشکل من اینه که چرا بعد از این خط (قبل از اینکه textchengi صورت بگیره) Textchanged فراخوانی می شه؟؟
There is no row at position 0 این خطا رو در قسمت Textchanged خط 56و57 میده!!!!!:ناراحت:
با چه کدی میتونم بگم اگر
txtCodeCustomer.Text = dataSet1.tbl_factor.Rows[0][1].ToString();
وجود نداشت پیغام بده؟؟؟
ممنون از راهنماییتون ولی اجرا نشد :ناراحت:
به یه روش دیگه عمل میکنم که مقدار textbox رو مقایسه کنه با آخرین فاکتور موجود ولی چطوری میتونم بگم اگر بزرگتر بود؟
if (txtShomareFactor.Text == (int.Parse(dataSet1.tbl_factor.Rows[0][0].ToString()) + 1).ToString())
ممنون میشم راهنماییم کنید
ممنون حل شد..