PDA

View Full Version : خارج کردن سطر انتخاب شده Datagridview از حالت انتخاب



Jean Reno
چهارشنبه 01 مهر 1388, 09:59 صبح
با سلام
من توی فرمم دو تا Datagridview دارم که هر کدوم شامل سطرهایی با موضوعات مختلف می باشد
حالت Bind رو برای هر دو Datagridview ایجاد کردم که با انتخاب هر سطر از هر کدام از Datagridview ها اطلاعات سطرها به آیتم ها مشترکی منتقل می شه
با این که از دو تا Datagridview تنها اطلاعات آخرین Datagridview که انتخاب شده منتقل می شه اما Datagridview اول رو از حالت انتخاب ( البته فقط در حالت نمایش ) خارج نمی کنه
چطور می تونم با انتخاب یک سطر از هر Datagridview سطر انتخاب شده در Datagridview دیگر رو از حالت انتخاب خارج کنم
با تشکر

pbiuki630
چهارشنبه 01 مهر 1388, 11:30 صبح
سلام
من یه سوال ازتون دارم که اگه جواب بدید ممنونم
من یه دیتا گرید ویو دارم که توش اطلاعات جدولمو میخونه وسطر به سطر نشون میده
آیا میتونم با کلیک روی هر سطر اطلاعات اون سطر رو توی یه فرم دیگه ببینم و اونو ویرایش کنم؟از چه کدی یا چه کامپونتی باید استفاده کنم؟
ممنون

Vahid_moghaddam
چهارشنبه 01 مهر 1388, 11:42 صبح
من یه دیتا گرید ویو دارم که توش اطلاعات جدولمو میخونه وسطر به سطر نشون میده
آیا میتونم با کلیک روی هر سطر اطلاعات اون سطر رو توی یه فرم دیگه ببینم و اونو ویرایش کنم؟از چه کدی یا چه کامپونتی باید استفاده کنم؟


از رویداد هایی مثل CellClick استفاده کنید. خاصیت DataBindings v رو هم در msdn مطالعه کنید

Jean Reno
چهارشنبه 01 مهر 1388, 11:48 صبح
سلام
من یه سوال ازتون دارم که اگه جواب بدید ممنونم
من یه دیتا گرید ویو دارم که توش اطلاعات جدولمو میخونه وسطر به سطر نشون میده
آیا میتونم با کلیک روی هر سطر اطلاعات اون سطر رو توی یه فرم دیگه ببینم و اونو ویرایش کنم؟از چه کدی یا چه کامپونتی باید استفاده کنم؟
ممنون


در این کد من با انتخاب یک سطر از دیتاگرید اطلاعات وارد شده رو در آیتم های همون فرم نمایش می دم
شما می تونید توی فرم دوم متغیرهایی از نوع Public تعریف کنید که با انتخاب یک سطر به جای مقدار گرفتن آیتم ها توی متغیرهای عمومی فرم دوم ذخیره سازی انجام بشه
سپس توی فرم دوم می تونید از متغیرهای مقدار گرفته استفاده کنید
کد زیر در رویداد RowHeaderMouseClick دیتاگرید قرار می گیره



label35.Text = dataGridView1[1, e.RowIndex].Value.ToString();
comboBox2.Text = dataGridView1[2, e.RowIndex].Value.ToString();
comboBox1.Text = dataGridView1[3, e.RowIndex].Value.ToString();
label34.Text = dataGridView1[5, e.RowIndex].Value.ToString();

alihassanabadi
چهارشنبه 01 مهر 1388, 11:57 صبح
سلام
من یه سوال ازتون دارم که اگه جواب بدید ممنونم
من یه دیتا گرید ویو دارم که توش اطلاعات جدولمو میخونه وسطر به سطر نشون میده
آیا میتونم با کلیک روی هر سطر اطلاعات اون سطر رو توی یه فرم دیگه ببینم و اونو ویرایش کنم؟از چه کدی یا چه کامپونتی باید استفاده کنم؟
ممنون
سلام
اره میتونی
روش های مختلفی داره ولی شما ین کار رو کن
برای اینکه گرید ویو تو فرم دوم شناخته بشه باید اونو عمومی کنی فرض کن که گرید ویو داخل فرم 1 هست حالا وارد محیط کد شو و از کمبوباکس ممبرها راحتتر بگم دو تا combobox بالای محیط کد میبینی از سمت راستی Initializecomponent() مربوط به فرم یک رو انتخاب کن
و کد



private System.Windows.Forms.DataGridView dataGridView1;

رو به


public System.Windows.Forms.DataGridView dataGridView1;

تغییر بده
حالا داخل کلیک گرید ویو کد زیر رو بنویس


Form2 frm2 = new Form2();
frm2.Show();

ودر فرم لود فرم دوم کد


int i, j;
Form1 frm1 = new Form1();
j = frm1.dataGridView1.Rows.Count;
i =frm1.dataGridView1.SelectedCells[0].RowIndex;
if (frm1.SelectedCells.Count > 0 && i != j - 1)
{
this.Text = i.ToString();
textBox1.Text =frm1.dataGridView1.Rows[i].Cells[0].Value.ToString();
textBox2.Text =frm1.dataGridView1.Rows[i].Cells[1].Value.ToString();
textBox3.Text =frm1.dataGridView1.Rows[i].Cells[2].Value.ToString();
textBox4.Text = frm1.dataGridView1.Rows[i].Cells[3].Value.ToString();
}
else
{
MessageBox.Show("شما نمیتوانید تمام رکوردها را انتخاب کنید", "error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}


دست هایی که کمک میکنند مقدس تر از لب هایی هستند که دعا میکنند.کوروش کبیر

Vahid_moghaddam
چهارشنبه 01 مهر 1388, 12:05 عصر
public کردن Gridview کار رو راه میندازه اما بهتره به جای این کار، اطلاعات مورد نیاز از سطر انتخاب شده به From2 فرستاده بشه و نتایج دریافت بشه. دو سه تا تاپیک هست با عنوانهایی شبیه دسترسی به یک فرم از فرم دیگه، اونجا بحث هایی در این مورد شده

mahdi_7610
چهارشنبه 01 مهر 1388, 12:13 عصر
سلام
من یه سوال ازتون دارم که اگه جواب بدید ممنونم
من یه دیتا گرید ویو دارم که توش اطلاعات جدولمو میخونه وسطر به سطر نشون میده
آیا میتونم با کلیک روی هر سطر اطلاعات اون سطر رو توی یه فرم دیگه ببینم و اونو ویرایش کنم؟از چه کدی یا چه کامپونتی باید استفاده کنم؟
ممنون
سلام

این تغییراتی هست که باید توی فرم 2 انجام بدی . یعنی فرمی که قراره اطلاعات سطر دیتاگرید توی اون نمایش داده بشه . فرض بر این است که شما 2 ستون توی دیتاگرید دارید .



DataGridViewRow currentRow;
public Form2(DataGridViewRow row)
{
InitializeComponent();
currentRow = row;
}
private void Form2_Load(object sender, EventArgs e)
{
if (currentRow != null)
{
textBox1.Text = currentRow.Cells[1].Value.ToString();
textBox2.Text = currentRow.Cells[0].Value.ToString();
}

}

این هم تغییرات فرم اول . فرمی که دیتاگرید داخل اون قرار داره .

با کلیک روی هر سطر ، فرم دوم باز شده و محتوای اون سطر را توی texbox های مربوطه نشان خواهد داد .


private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.CurrentRow != null)
{
Form2 frm = new Form2(dataGridView1.CurrentRow);
frm.Show();
}
}

موفق باشی

Jean Reno
چهارشنبه 01 مهر 1388, 12:23 عصر
با سلام
من توی فرمم دو تا Datagridview دارم که هر کدوم شامل سطرهایی با موضوعات مختلف می باشد
حالت Bind رو برای هر دو Datagridview ایجاد کردم که با انتخاب هر سطر از هر کدام از Datagridview ها اطلاعات سطرها به آیتم ها مشترکی منتقل می شه
با این که از دو تا Datagridview تنها اطلاعات آخرین Datagridview که انتخاب شده منتقل می شه اما Datagridview اول رو از حالت انتخاب ( البته فقط در حالت نمایش ) خارج نمی کنه
چطور می تونم با انتخاب یک سطر از هر Datagridview سطر انتخاب شده در Datagridview دیگر رو از حالت انتخاب خارج کنم
با تشکر

محض رضای خدا یکی هم جواب ما رو بده !

alireza_s_84
چهارشنبه 01 مهر 1388, 12:56 عصر
محض رضای خدا یکی هم جواب ما رو بده !

سلام دوست عزیز SelectedIndex اون DataGrid رو برابر -1 قرار بدین
مشکلی بود مطرح کنید بیشتر راهنمایی کنم
alireza_s_84@yahoo.com
موفق باشید

Jean Reno
چهارشنبه 01 مهر 1388, 16:15 عصر
سلام دوست عزیز SelectedIndex اون DataGrid رو برابر -1 قرار بدین
مشکلی بود مطرح کنید بیشتر راهنمایی کنم
alireza_s_84@yahoo.com
موفق باشید

ممنون از پاسخت ولی Datagridview من SelectedIndex نداره

Reza_Yarahmadi
چهارشنبه 01 مهر 1388, 18:14 عصر
نمیدونم منظورتون رو درست متوجه شدم یا نه! اگه قصد دارید کاری کنید که سطر انتخاب شده از حالت انتخاب (select) خارج بشه میتونید از کد زیر استفاده کنید:

DataGridView1.CurrentRow.Selected = false;

Jean Reno
چهارشنبه 01 مهر 1388, 21:19 عصر
نمیدونم منظورتون رو درست متوجه شدم یا نه! اگه قصد دارید کاری کنید که سطر انتخاب شده از حالت انتخاب (select) خارج بشه میتونید از کد زیر استفاده کنید:

DataGridView1.CurrentRow.Selected = false;

دقیقا منظورم همینه اما وقتی این کد رو توی رویداد RowHeaderMouseClick هر کدام از DataGridView ها قرار می دم تا با انتخاب شدن یک سطری از آن سطر انتخابی DataGridView دیگر رو از کار بندازه خطایی که تصویرش رو ضمیمه کردم می ده

سهیلا صالح نوسی
جمعه 03 مهر 1388, 09:33 صبح
دقیقا منظورم همینه اما وقتی این کد رو توی رویداد RowHeaderMouseClick هر کدام از DataGridView ها قرار می دم تا با انتخاب شدن یک سطری از آن سطر انتخابی DataGridView دیگر رو از کار بندازه خطایی که تصویرش رو ضمیمه کردم می ده
سلام
اگه این کد رو در رویدادcellclick دیتاگریدویو قرار بدید مشکل حل می شه
با dgv1، dgv2 را تغییر بدید و با dgv2،dgv1 رو.