PDA

View Full Version : سوال: مشکل ساده در dataGridView



ehsan446
پنج شنبه 22 تیر 1391, 17:19 عصر
سلام
تو GridView با استفاده از tab به سلول های مجاور میرود و با استفاده از enter به سطر بعدمیرو د من میخوام با استفاده از enter به سلول های مجاور برود و در اخرین سلول که enter میخورد یه سطر جدید ایجاد کند و به آن سطر بروم
ممنون میشم کسی راهنماییم کنه
خیلی گیرشم

balabalaha
پنج شنبه 22 تیر 1391, 17:37 عصر
int Selected_Row= -1 , Selected_Column = -1;
private void dataGridView1_KeyDown( object sender , KeyEventArgs e )
{
if ( e.KeyCode == Keys.Enter )
if ( Selected_Column < dataGridView1.ColumnCount - 1 )
dataGridView1.CurrentCell = dataGridView1[ Selected_Column + 1 , Selected_Row ];

else
{
if ( dataGridView1.RowCount-1 > Selected_Row )
dataGridView1.CurrentCell = dataGridView1[ 0 , Selected_Row ];
}
}




private void dataGridView1_CellEnter( object sender , DataGridViewCellEventArgs e )
{
Selected_Column = e.ColumnIndex;
Selected_Row = e.RowIndex;
}

ali_habibi1384
پنج شنبه 22 تیر 1391, 18:44 عصر
من هميشه از اين كد استفاده ميكم : ابتدا اين كد رو توي فرمت وارد كن:


private Boolean GridFocus { get; set; }
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if (msg.WParam.ToInt32() == (int)Keys.Enter && GridFocus == true)
{
SendKeys.Send("{tab}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}

اين كد رو در رويدادEnter گريد بنويس:


this.GridFocus = true;

اين در رويداد Lave:


this.GridFocus = false;

ehsan446
دوشنبه 26 تیر 1391, 12:47 عصر
من هميشه از اين كد استفاده ميكم : ابتدا اين كد رو توي فرمت وارد كن:


private Boolean GridFocus { get; set; }
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if (msg.WParam.ToInt32() == (int)Keys.Enter && GridFocus == true)
{
SendKeys.Send("{tab}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}

اين كد رو در رويدادEnter گريد بنويس:


this.GridFocus = true;

اين در رويداد Lave:


this.GridFocus = false;


دوست عزیز با این کد مشکلم حل شد اما من میخوام با زدن enter در جدولم یک سری کد هم اجرا بشه که وقتی از keypress گریدویو برای اینکار استفاده میکنم عمل نمیکند و به جای آن، سلول را عوض می کند