PDA

View Full Version : غیرفعال بودن رویداد Activated



negar222
چهارشنبه 17 شهریور 1395, 09:50 صبح
سلام
چرا بعد از فعال شدن فرم، رویداد Activated اجرا نمیشه؟؟ تو برنامم حتی اول رویداد txtBox1_TextChanged فراخوانی میشه بعد Activated که همش هم Error میده..
خواهشاً از دوستان هرکس میدونه راهنمایی کنه :ناراحت:

barnamenevisjavan
چهارشنبه 17 شهریور 1395, 10:20 صبح
رویداد Activated زمانی اجرا میشه که فوکوس یکبار بیاد روی فرم ، بهتره کدهاتون قرار بدید بهتر بررسی بشه

negar222
چهارشنبه 17 شهریور 1395, 11: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, 14:22 عصر
متد Activated بعد از Load اجرا میشه.خب بدلیل این خط از کد که داخل متد Load فرم نوشتی

//به اولین شماره فاکتور یک مقدار اضافه کن (شماره فاکتورها به صورت نزولی مرتب شده)ی
txtShomareFactor.Text = (int.Parse(dataSet1.tbl_factor.Rows[0][0].ToString()) + 1).ToString();

متد TextChanged قبل از متد Activated فراخوانی میشود

negar222
چهارشنبه 17 شهریور 1395, 16:00 عصر
خب بله درست میگید مشکل من اینه که چرا بعد از این خط (قبل از اینکه textchengi صورت بگیره) Textchanged فراخوانی می شه؟؟

There is no row at position 0 این خطا رو در قسمت Textchanged خط 56و57 میده!!!!!:ناراحت:

negar222
چهارشنبه 17 شهریور 1395, 16:45 عصر
با چه کدی میتونم بگم اگر

txtCodeCustomer.Text = dataSet1.tbl_factor.Rows[0][1].ToString();
وجود نداشت پیغام بده؟؟؟

ژیار رحیمی
چهارشنبه 17 شهریور 1395, 20:21 عصر
خب بله درست میگید مشکل من اینه که چرا بعد از این خط (قبل از اینکه textchengi صورت بگیره) Textchanged فراخوانی می شه؟؟

There is no row at position 0 این خطا رو در قسمت Textchanged خط 56و57 میده!!!!!:ناراحت:

چون شما txtShomareFactor.Text رو مقداری رو بهش انتساب دادی پس خاصیت Text ان تغییر میکند پس رویداد TextChanged ان فراخوانی میشود

ژیار رحیمی
چهارشنبه 17 شهریور 1395, 20: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, 21:30 عصر
ممنون از راهنماییتون ولی اجرا نشد :ناراحت:

به یه روش دیگه عمل میکنم که مقدار textbox رو مقایسه کنه با آخرین فاکتور موجود ولی چطوری میتونم بگم اگر بزرگتر بود؟

if (txtShomareFactor.Text == (int.Parse(dataSet1.tbl_factor.Rows[0][0].ToString()) + 1).ToString())

ممنون میشم راهنماییم کنید

negar222
چهارشنبه 17 شهریور 1395, 22:29 عصر
ممنون حل شد..