PDA

View Full Version : مشکل در رادیو باتن و انتخاب پنل ها



csharpprogramer88
دوشنبه 04 مهر 1390, 10:05 صبح
سلام



من 2 تا رادیو باتن روی فرم گذاشتم و 2 تا پنل دارم میخوام با انتخاب رادیو اول پنل اولی فعال بشه و با انتخاب رادیو دومی پنل دومی فعال بشه که در هر کدوم از پنل ها میخوام یکسری اطلاعات را با توجه به رادیوهای انتخاب شده ، از دیتابیس بخونم

در رویداد CheckedChanged رادیو visible پنل ها true,fase کردم ولی وقتی که رادیو دومی را انتخاب کردم و پنل دومی نمایش داده شده ولی زمانی که روی دکمه سرچ کلیک میکنم پنل اولی نمایش داده میشه و سرچ من بر اساس پنل اول انجام میگیره در صورتیکه من پنل دوم را انتخاب کردم

mehran_sh_t
دوشنبه 04 مهر 1390, 10:18 صبح
سلام
میشه کد دکمه سرچتون رو بذارید؟

faravaghi
دوشنبه 04 مهر 1390, 11:13 صبح
سلام،
اگه تو نمایش و مخفی کردن پنل ها مشکلی نداری، زمان جستجو یک شرط بزار و بر اساس انتخاب هر کدوم از Radio ها پارامترهای جستجو را بچین.

csharpprogramer88
دوشنبه 04 مهر 1390, 16:30 عصر
رادیو اولی :


private void radio_khorooj_CheckedChanged(object sender, EventArgs e)
{
pnl_khorooj.Visible = true;
pnl_vorood.Visible = false;}

رادیو دومی :


private void radio_vorood_CheckedChanged(object sender, EventArgs e)
{
pnl_khorooj.Visible = false;
pnl_vorood.Visible = true;}


اینم کد منه برای شو و هاید کردن 2 پنل
کد مربوط به دیتابیسم در رویداد کلیک تب نوشتم ولی پس از کلیک بر روی تب مربوطه اگر رادیو دومی انتخاب شه سریع از حالت انتخاب در میاد و میره به رادیو اولی و نتیجه سرچ یه چیز دیگه در میادد

mehran_sh_t
دوشنبه 04 مهر 1390, 17:05 عصر
خیلی نا مفهومه مشکلتون! اگر در asp بود یه چیزی!

کد مربوط به دیتابیسم در رویداد کلیک تب نوشتم
یعنی شما به جز عمل سرچ، هیچ کد دیگه ای در این رویداد ندارید؟

RIG000
دوشنبه 04 مهر 1390, 17:45 عصر
#region
//انتخاب باتون مورد نظر در تب کنترل های مختلف
private void tabControl1_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedTab == tP1)
{
AcceptButton = button1;
}
if (tabControl1.SelectedTab == tP2)
{
AcceptButton = button4;
}
if (tabControl1.SelectedTab == tP3)
{
AcceptButton = button6;
}
if (tabControl1.SelectedTab == tP4)
{
AcceptButton = button5;
}
}
#endregion
مهندس سلام. امیدوارم منظور شما رو فهمیده باشم. چون منم همچین مشکلی داشتم. ما یه تب میزارم و اون تب پیج هایی که براش میزاری اسم داره حالا بسته به اسمش کد های خودتو توش مینویسی تا کاری رو انجام بده. ت این کدیه که خودم واسه برنامه ها م استفاده کردم.

csharpprogramer88
دوشنبه 04 مهر 1390, 18:24 عصر
خیلی نا مفهومه مشکلتون! اگر در asp بود یه چیزی!

یعنی شما به جز عمل سرچ، هیچ کد دیگه ای در این رویداد ندارید؟
نه
اینم کد تب :

private void tab_coat_Click(object sender, EventArgs e)
{
if (radio_khorooj.Checked = true)
{

ds.Clear();
da = new SqlDataAdapter("SELECT * FROM tbl_koat WHERE date_export BETWEEN '" + txt_date_khorooj_az.Text + "' and '" + txt_khorooj_ta.Text + "'", con);
da.Fill(ds, "tbl_koat");
bs.DataSource = ds.Tables["tbl_koat"];
dgv_coat.DataSource = bs;
}
else if (radio_vorood.Checked = true)
{
ds.Clear();
da = new SqlDataAdapter("SELECT * FROM tbl_koat WHERE date_import BETWEEN '" + txt_date_vorood_az.Text + "' and '" + txt_date_vorood_ta.Text + "'", con);
da.Fill(ds, "tbl_koat");
bs.DataSource = ds.Tables["tbl_koat"];
dgv_coat.DataSource = bs;

}
}
}

csharpprogramer88
دوشنبه 04 مهر 1390, 18:27 عصر
#region
//انتخاب باتون مورد نظر در تب کنترل های مختلف
private void tabControl1_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedTab == tP1)
{
AcceptButton = button1;
}
if (tabControl1.SelectedTab == tP2)
{
AcceptButton = button4;
}
if (tabControl1.SelectedTab == tP3)
{
AcceptButton = button6;
}
if (tabControl1.SelectedTab == tP4)
{
AcceptButton = button5;
}
}
#endregion
مهندس سلام. امیدوارم منظور شما رو فهمیده باشم. چون منم همچین مشکلی داشتم. ما یه تب میزارم و اون تب پیج هایی که براش میزاری اسم داره حالا بسته به اسمش کد های خودتو توش مینویسی تا کاری رو انجام بده. ت این کدیه که خودم واسه برنامه ها م استفاده کردم.
فکر میکنم شما منظور منو نگرفتید
اگر میشه یک پروژه بدید تا تست کنم ببینم منظور منو متوجه شدید یا نه

mehran_sh_t
دوشنبه 04 مهر 1390, 21:52 عصر
:)
مشکل از شرطیه که در رویداد تب چک می کنید! باید == باشه، نه =!
دیگه باقی ماجرا رو می دونید دیگه؟ ...
موفق باشید

nilmil_nil
دوشنبه 04 مهر 1390, 21:56 عصر
اگه میتونی قسمتی از پروژه که توش مشکل داری رو بذار
ولی کدی که دوستمون Hojat 1 گذاشته باید درست باشه
دوستمون هم گفت دقت کن که هر دو پنل Visible اونا false باشه حتما
شاید بخاطر اینه
درست نشد حتما پروژه تو البته قشمتی از اونو که مشکل داری بذار

csharpprogramer88
دوشنبه 04 مهر 1390, 22:10 عصر
سلام تو selet change یکی از رادیو باتن ها کد زیر رو بزن
اول vizeble دو تا پنل رو false کن بعد


if (radioButton1.Checked == true)

{

panel1.Visible =
true;

panel2.Visible =
false;

}


else if (radioButton2.Checked == true)

{

panel2.Visible =
true;

panel1.Visible =
false;

}



private void radio_khorooj_CheckedChanged(object sender, EventArgs e)
{
////if (radio_khorooj.Checked)
////{
//// pnl_khorooj.Visible = true;
//// pnl_vorood.Visible = false;
////}

//pnl_khorooj.Visible = true;
//pnl_vorood.Visible = false;

if (radio_khorooj.Checked == true)
{
pnl_khorooj.Visible = true;
pnl_vorood.Visible = false;
}
else if (radio_vorood.Checked == true)
{
pnl_vorood.Visible = true;
pnl_khorooj.Visible = false;
}
}

من selet change را پیدا نکردم ولی شاید منظورت CheckedChanged بود (اگر جر اینه به من بگو ) که در این رویداد نوشتم ولی هیچ تغییری ایجاد نشد زمانی رادیو دومی انتخاب شد و بر روی تب کلیک میکنم بلافاصله رادیو اولی خود بخود انتخاب میشه

nilmil_nil
دوشنبه 04 مهر 1390, 22:19 عصر
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
panel1.Visible = true;
panel2.Visible = false;
}
}

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true)
{
panel2.Visible = true;
panel1.Visible = false;
}
}


عزیز این رو چک کن ببین جواب میده واسه من که جواب داد فقط اولش هر دوتا Panel رو visible=false کن

csharpprogramer88
دوشنبه 04 مهر 1390, 22:37 عصر
:)
مشکل از شرطیه که در رویداد تب چک می کنید! باید == باشه، نه =!
دیگه باقی ماجرا رو می دونید دیگه؟ ...
موفق باشید
من که چنین چیزی نمیبینم :
=!

لطفا دقیق بگید کجاست؟

csharpprogramer88
دوشنبه 04 مهر 1390, 22:48 عصر
با تشکر از همه دوستان که همکاری کردن اینم یه پروژه که مشکل من کاملا در اون وجود داره موقع اجرا اگر رادو بان - گزارش بر اساس تاریخ ورود را کلیک کنیو بعد بر روی تب کلیک کنید بلافاصله رادیو باتن اولی - گزاررش بر اساس تاریخ خروج - انتخاب میشه

mehran_sh_t
دوشنبه 04 مهر 1390, 22:54 عصر
منظورم = بود، که با یک علامت تعجب شد =!، منظورم نا مساوی نبود :)
در پست شماره 7، به جای = در دو شرط، == بگذارید

csharpprogramer88
دوشنبه 04 مهر 1390, 23:00 عصر
تشکر دوست عزیز ولی خیلی هنگم الان اگر میشه یه توضیح بدید = و == در اینجا چه تفاوتی دارند


if (radio_khorooj.Checked == true)
{

ds.Clear();
da = new SqlDataAdapter("SELECT * FROM tbl_koat WHERE date_export BETWEEN '" + txt_date_khorooj_az.Text + "' and '" + txt_khorooj_ta.Text + "'", con);
da.Fill(ds, "tbl_koat");
bs.DataSource = ds.Tables["tbl_koat"];
dgv_coat.DataSource = bs;
}
else if (radio_vorood.Checked == true)
{
ds.Clear();
da = new SqlDataAdapter("SELECT * FROM tbl_koat WHERE date_import BETWEEN '" + txt_date_vorood_az.Text + "' and '" + txt_date_vorood_ta.Text + "'", con);
da.Fill(ds, "tbl_koat");
bs.DataSource = ds.Tables["tbl_koat"];
dgv_coat.DataSource = bs;

}

به این صورت نوشتم و جواب داد

با تشکر

ACorvinus
دوشنبه 04 مهر 1390, 23:14 عصر
سلام.

خوشحالم که به جواب رسیدی. ولی من از اول تا آخرش نفهمیدم چرا مشکل داشتی؟!!!
در ضمن دوست من، = برای انتساب هستش و == برای عمل مقایسه.

راستی کد CheckedChange هر دو RadioButton رو میتونی یکی کنی....
موفق باشی.

mehran_sh_t
دوشنبه 04 مهر 1390, 23:44 عصر
عملگر =، برای انتصاب هستش، وقتی شما توی شرط می نویسی if x = 2، مقدار x رو برابر 2 قرار می ده، و خوب این عمل نتیجه اش هم مثبته! پس دستورات درونش انجام میشه، و else ها دیگه انجام نمی شه. دلیل اینکه پنل 1 شما به صورت visible در می اومد هم همین مساله بود، شما در شرطتون مقایسه نمی کردید، بلکه مقدار visible رو برابر true قرار می دادید.
ولی == برای مقایسه به کار می ره، != هم یعنی نا مساوی و ...

موفق باشید