PDA

View Full Version : سوال: حذف چند تایی از جدول توسط گراید ویو



ahmad_lovely
سه شنبه 19 مرداد 1389, 12:09 عصر
با سلام
می خواستم بدونم چطور میشه رکورد هایی که در گراید ویو انتخاب شده اند (multi select) ، رو همزمان از جدول حذف بکنیم .(حذف چند تایی)

در ضمن 2 سوال در مورد فوکوس روی تکست باکس، آیا رویدادی مثل getfocus که در VB بود، در C#‎ هم هست . یعنی می خوام وقتی فوکوس روی تکست باکس اومد، محتوای تکست باکس انتخاب بشه .
سوال دوم اینکه، آیا میشه در هنگام لود شدن فرم، فوکوس رو به تکست باکس مورد نظر داد. یعنی مثلا 4 تا تکست باکس داریم و خاصیت tabIndex اونها از صفر تا سه هستن، حالا من می خوام با نوشتن کد در هنگام لود شدن فرم، فوکوس رو ببرم به تکست باکسی که TabIndex اون دو باشه .
با تشکر

vandermond
سه شنبه 19 مرداد 1389, 12:25 عصر
دوست عزيز
براي حذف كه فرق خاصي نداره اگه بخاين بعدا براتون كدش رو هم ميزارم.
براي فوكوس كردن روي تكست باكس مورد نظر:

textBox2.Focus();
و براي انتخاب كردن كامل متن تكست باكس:

textBox2.SelectAll();
اگه مشكل ديگه اي بود بفرماييد.

حجتی نیا
سه شنبه 19 مرداد 1389, 12:35 عصر
می خواستم بدونم چطور میشه رکورد هایی که در گراید ویو انتخاب شده اند (multi select) ، رو همزمان از جدول حذف بکنیم .(حذف چند تایی)

گرید بایند هست یا نه؟؟

ahmad_lovely
سه شنبه 19 مرداد 1389, 13:32 عصر
گرید بایند هست یا نه؟؟

آره.
من حذف تکی رو دارم، ولی تو حذف چند تایی، وقتی چند تا رکورد توی دیتا گراید ویو به صورت درهم یا به ترتیب انتخاب می کنی، چطوری تشخیص بدم چه رکورد هایی و چند تا، توی دیتا گراید ویو انتخاب شده اند تا بتونم اونارو حذف کنم !

ahmad_lovely
سه شنبه 19 مرداد 1389, 13:45 عصر
دوست عزيز
براي حذف كه فرق خاصي نداره اگه بخاين بعدا براتون كدش رو هم ميزارم.
براي فوكوس كردن روي تكست باكس مورد نظر:

textBox2.Focus();و براي انتخاب كردن كامل متن تكست باكس:

textBox2.SelectAll();اگه مشكل ديگه اي بود بفرماييد.

این کدها رو بلد بودم ، ولی وقتی تو فرم لود کد textbox2.focus() می نویسی که فوکوس بره تکست 2، این کار انجام نمیشه یعنی فوکوس روی تکستی که TabIndex اون صفر یا کمترین هست، می ره !

در مورد textbox.selectAll()، با این کد کار کردم ولی می خوام وقتی این کد اجرا بشه که تکست باکس فوکوس رو دریافت کرده . یعنی چه با کلیک روی تکست و چه با دکمه ی Tab ،وقتی فوکوس رو به تکست باکس مورد نظر دادیم، محتوای اون انتخاب بشه !
توی VB با نوشتن این کد توی رویداد GetFocus تکست باکس، این کار انجام میشد !

mmd2009
سه شنبه 19 مرداد 1389, 13:50 عصر
این کدها رو بلد بودم ، ولی وقتی تو فرم لود کد textbox2.focus() می نویسی که فوکوس بره تکست 2، این کار انجام نمیشه یعنی فوکوس روی تکستی که TabIndex اون صفر یا کمترین هست، می ره !

در مورد textbox.selectAll()، با این کد کار کردم ولی می خوام وقتی این کد اجرا بشه که تکست باکس فوکوس رو دریافت کرده . یعنی چه با کلیک روی تکست و چه با دکمه ی Tab ،وقتی فوکوس رو به تکست باکس مورد نظر دادیم، محتوای اون انتخاب بشه !
توی VB با نوشتن این کد توی رویداد GetFocus تکست باکس، این کار انجام میشد !

با سلام

شما میتونی از textbox.select() هم استفاده بکنی و کلا ربطی به TabIndex نداره.

دوست عزیز شما وقتی کد textbox.selectAll() رو بذاری تو رویداد click یا enter وقتی focus شدی به یک تکست باکس اون تکست نوشته هاش Select میشه

ahmad_lovely
سه شنبه 19 مرداد 1389, 14:14 عصر
با سلام

دوست عزیز شما وقتی کد textbox.selectAll() رو بذاری تو رویداد click یا enter وقتی focus شدی به یک تکست باکس اون تکست نوشته هاش Select میشه



وقتی این کد رو توی رویداد کلیک بنویسی جالب در نمیاد .
چون دیگه نمی تونی قسمتی از متن داخل تکست باکس رو انتخاب کنی !

mmd2009
سه شنبه 19 مرداد 1389, 14:14 عصر
دوست عزیز برای حدف چندتاس از فرم هم یکی از راه های ساده اینه که از طریق زیر عمل کنید

کدش رو براتون نوشتم تستش هم کردم :چشمک:




string address_db = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dbase.mdb";

OleDbConnection con;

con = new OleDbConnection(address_db);

string q = "delete from t1 where name=@name";

OleDbCommand cmd = new OleDbCommand(q,con);

foreach (DataGridViewRow a in dataGridView1.Rows)
{
if (a.Selected == true)
{
con.Open();
cmd.Parameters.Add(@"name", OleDbType.Char).Value =
a.Cells[0].Value.ToString();

cmd.ExecuteNonQuery();
con.Close();
cmd.Parameters.Clear();
}
}

ahmad_lovely
سه شنبه 19 مرداد 1389, 14:20 عصر
وقتی این کد رو توی رویداد کلیک بنویسی جالب در نمیاد .
چون دیگه نمی تونی قسمتی از متن داخل تکست باکس رو انتخاب کنی !

یعنی رویدادی برای اینکار وجود نداره ؟

mmd2009
سه شنبه 19 مرداد 1389, 14:32 عصر
وقتی این کد رو توی رویداد کلیک بنویسی جالب در نمیاد .
چون دیگه نمی تونی قسمتی از متن داخل تکست باکس رو انتخاب کنی !

میتونی اینو هم بنویسی :

البته اگر دوستان روشهای بهتری هم میدونن بگن

فکر نکنم این روش خوب باشه.



private void textBox2_Enter(object sender, EventArgs e)
{
if (textBox2.Focus())
textBox2.SelectAll();
}

حجتی نیا
سه شنبه 19 مرداد 1389, 16:07 عصر
آره.
من حذف تکی رو دارم، ولی تو حذف چند تایی، وقتی چند تا رکورد توی دیتا گراید ویو به صورت درهم یا به ترتیب انتخاب می کنی، چطوری تشخیص بدم چه رکورد هایی و چند تا، توی دیتا گراید ویو انتخاب شده اند تا بتونم اونارو حذف کنم !
میتونی از یه روش دیگه هم استفاده کنی، همونطور که میدونید وقتی گرید به یه جدول بایند هست با دستور tableadapter.fill اون پر میشه، برای پاک کردن هم میتونید از آداپتر استفاده کنید اینطوری که اول با یه حلقه سطرهایی که انتخاب کردید رو فقط از گرید حذف(حلقه مثل مثال جناب mmd2009) سپس با دستور
tableadapter.update(datasetname.tablename)
تغییرات در دیتابیس اعمال میشه ..

ahmad_lovely
سه شنبه 19 مرداد 1389, 16:07 عصر
میتونی اینو هم بنویسی :

البته اگر دوستان روشهای بهتری هم میدونن بگن

فکر نکنم این روش خوب باشه.



private void textBox2_Enter(object sender, EventArgs e)
{
if (textBox2.Focus())
textBox2.SelectAll();
}


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

حجتی نیا
سه شنبه 19 مرداد 1389, 16:24 عصر
این روش هم نشد !
تو رویداد enter نیازی نیست چک بشه که فوکوس شده یا نه، فقط دستور selectall نوشته بشه کافیه (هروقت تکس باکس فوکوس بشه،با تب، ای رویداد کار میکنه)
واسه زمانی که با موس کار کنه باید تو رویداد MouseClick هم بنویسی

vandermond
سه شنبه 19 مرداد 1389, 16:31 عصر
این کدها رو بلد بودم ، ولی وقتی تو فرم لود کد textbox2.focus() می نویسی که فوکوس بره تکست 2، این کار انجام نمیشه یعنی فوکوس روی تکستی که TabIndex اون صفر یا کمترین هست، می ره !

در مورد textbox.selectAll()، با این کد کار کردم ولی می خوام وقتی این کد اجرا بشه که تکست باکس فوکوس رو دریافت کرده . یعنی چه با کلیک روی تکست و چه با دکمه ی Tab ،وقتی فوکوس رو به تکست باکس مورد نظر دادیم، محتوای اون انتخاب بشه !
توی VB با نوشتن این کد توی رویداد GetFocus تکست باکس، این کار انجام میشد !
براي سوال اول: توي فرم لود از

textBox2.Select();
استفاده كن.
براي قسمت دوم: با Tab كه خودش SelectAll ميكنه. براي موس هم با دابل كليك خودش اين كار رو ميكنه. منظورت اينه كه با يك كليك بشه؟
البته من در مورد GetFocus ويبي چيزي نميدونم. كي فراخاني ميشه و ...... اگه ميشه نمونه كد VB بزاريد، شايد دقيقا فهميديم چيه:متفکر:.

ahmad_lovely
سه شنبه 19 مرداد 1389, 18:41 عصر
براي سوال اول: توي فرم لود از

textBox2.Select();استفاده كن.
براي قسمت دوم: با Tab كه خودش SelectAll ميكنه. براي موس هم با دابل كليك خودش اين كار رو ميكنه. منظورت اينه كه با يك كليك بشه؟
البته من در مورد GetFocus ويبي چيزي نميدونم. كي فراخاني ميشه و ...... اگه ميشه نمونه كد VB بزاريد، شايد دقيقا فهميديم چيه:متفکر:.



منظورم اینه که با هر روشی وقتی فوکوس به کنترل داده میشه، محتوای اون انتخاب بشه !
رویداد getFocus وی بی اینجوریه که وقتی کنترل، فوکوس رو دریافت میکنه کد داخل رویداد اجرا میشه !

vandermond
پنج شنبه 21 مرداد 1389, 01:20 صبح
منظورم اینه که با هر روشی وقتی فوکوس به کنترل داده میشه، محتوای اون انتخاب بشه !
رویداد getFocus وی بی اینجوریه که وقتی کنترل، فوکوس رو دریافت میکنه کد داخل رویداد اجرا میشه !
راستش من همچين چيزي توي #C بلد نيستم:گریه:. يعني توي ويبي اين متد فقط زماني كه فوكوس از يك جاي ديگه به مثلا تكست باكس مورد نظر بياد فراخاني ميشه يا مثلا اگه فوكوس روي همين تكست باكس باشه با كليك دوباره هم فراخاني ميشه؟
اگه حالت دوم باشه كه فايده نداره. ولي اگه حالت اول هستش چيز خوبيه. و احتمال زياد #C هم داره همچين چيزي ولي من نديدم تا حالا.
اساتيد لطفا بگن كه داره يا نه.