重新开帖问:
代码:
private void button1_Click(object sender, EventArgs e)
{
this.dataGridView1.BeginEdit(false); } private void Form1_Load_1(object sender, EventArgs e)
{
this.dataGridView1.Rows.Add(4); //随便添加四行.
this.dataGridView1.BeginEdit(false);
}参见上一贴:http://http://topic.csdn.net/u/20080530/11/ff4ea6e5-a342-47d5-8ffd-b3101bfd0b30.html用button1_Click, datagridview可以进入编辑状态, 而在Form1_Load里却不能直接进入编辑状态. 为什么?
我已将问题简化,Form只有一个button和datagridview. dataGridView也只随便添加了一个文本列.
代码:
private void button1_Click(object sender, EventArgs e)
{
this.dataGridView1.BeginEdit(false); } private void Form1_Load_1(object sender, EventArgs e)
{
this.dataGridView1.Rows.Add(4); //随便添加四行.
this.dataGridView1.BeginEdit(false);
}参见上一贴:http://http://topic.csdn.net/u/20080530/11/ff4ea6e5-a342-47d5-8ffd-b3101bfd0b30.html用button1_Click, datagridview可以进入编辑状态, 而在Form1_Load里却不能直接进入编辑状态. 为什么?
我已将问题简化,Form只有一个button和datagridview. dataGridView也只随便添加了一个文本列.
protected override void OnShown(EventArgs e)
{
dgvDatabase.Rows.Add(4);
dgvDatabase.BeginEdit(false);
base.OnShown(e);
}可能是焦点问题.
或者你在show中写this.dataGridView1.Rows.Add(4); //随便添加四行.
this.dataGridView1.BeginEdit(false);
试试看
使得GridView进入了编辑状态,但内嵌编辑窗口却显示不出来(父窗口还没显示呢)。随后,又没有办法通过失去焦点来EndEdit()。你可以这样模拟这个错误:
设dataGridView1的tabIndex为1,而按键的tabIndex为0(这样dataGridView就不会获得默认的焦点),你会发现你代码中连button1_Click都不好使了!第二:问题可以这样解决,不在Form_Load而在第一次显示窗口(Form_Shown)中来让dataGridView进入编辑状态。
请参考以下代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.dataGridView1.Rows.Add(4); //随便添加四行. this.Shown += delegate { this.dataGridView1.BeginEdit(false); }; //<---
} private void button1_Click(object sender, EventArgs e)
{
this.dataGridView1.BeginEdit(false);
}
}
就是5楼讲的不能有BeginEdit,否则没有配对的EndEdit
{
this.dataGridView1.Select();//加上这一句激活控件应该OK了
this.dataGridView1.Rows.Add(4); //随便添加四行.
this.dataGridView1.BeginEdit(false);
}
先 Me.Show()
Me.Activate()