怎么让Winfrom窗体加载时dataGridView失去行焦点

情况如下:第一个窗体中有个跳转页面按钮,单击按钮后打开第二个窗体第二个窗体中有一个dataGridView控件,并且在打开第二个窗体时就加载数据还有一个textBox控件... 情况如下:
第一个窗体中有个跳转页面按钮,单击按钮后打开第二个窗体
第二个窗体中有一个dataGridView控件,并且在打开第二个窗体时就加载数据
还有一个textBox控件,当dataGridView行状态发生更改时则会将当前选定行的第一列的值传给textBox
dataGridView行状态更改的事件即:
dataGridView1_RowStateChanged
{
textBox1.Text = e.Row.Cells[1].Value.ToString();
}
问题就在于当加载第二个窗体时dataGridView1_RowStateChanged事件默认就会将dataGridView第一行选中,从而导致刚刚加载的时候就为textBox传值
我想要的效果是当第二个窗体加载时textBox控件为空,只有在我选定行的时候才去为textBox传值
帮帮我吧,查了不少资料都没有能解决这个问题的,高手指点下啊
要能解决问题的,别蒙人啊!一楼的,你那isLoad 变量有什么用啊,我就纳闷了
二楼说的方法我以前就试过了,也不行
展开
 我来答
伟大的至尊宝
2010-05-28 · TA获得超过108个赞
知道答主
回答量:43
采纳率:0%
帮助的人:0
展开全部
我不知道你那个RowStateChanged事件是否同样适用于我这种情况,如果我是你我会选择用AfterSelect事件

我的做法是在打开第二个窗体加载数据之后写一句
dgvCustomerInfo.ClearSelection();

例如:

//从临时集合取数据
dgvCustomerInfo.DataSource = CompanyInfos;
//[ 默认不让选择一条数据]
dgvCustomerInfo.ClearSelection();

在AfterSelect事件中写
if(dgvCustomerInfo.SelectedIndex >= 0)
{
textBox1.Text = dgvPersonalInfo.SelectedRows[0].Cells[0].Value.ToString();
}
Higer爱Susan
2010-05-19 · TA获得超过917个赞
知道小有建树答主
回答量:508
采纳率:0%
帮助的人:443万
展开全部
private bool isLoad = false;
private void Form2_Load(object sender, EventArgs e)
{
this.dataGridView1.Rows.Add("1", "1");
this.dataGridView1.Rows.Add("2", "2");
this.dataGridView1.Rows.Add("3", "3");
isLoad = true;
}

private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
if (isLoad)
{
textBox1.Text = e.Row.Cells[1].Value.ToString();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
翡缘随心
2010-05-19
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
其实至只需要做的是,第二个窗体加载的时候,textBox文本框获得焦点就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式