c# datagridview 编辑模式出错

ytcola 2012-02-28 10:35:34
我用Access新建了一个表,主键是自动增量,还有一列是编辑项(暂定为单位列吧)
然后在C#中新建一个窗口,窗口上新建一个datagridview。用oledb把数据自动显示在datagridview中。
dataGridView的默认编辑模式是双击或者F2编辑cell单元格。
我想让用户单击cell即可编辑,于是编程 dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
同时在dataGridView的 CellEnter 编程让单元格收到输入焦点 进入编辑模式
在CellLeave事件中编程让单元格失去输入焦点 退出编辑模式。
问题出来了。
如果用dataGridView的默认编辑模式(双击或者F2编辑cell单元格计入编辑模式),程序的运行没有问题,
如果改为上面我写的代码,程序出现错误,错误为:索引大小超出范围。
具体代码如下:

private void DepartManageForm_Load(object sender, EventArgs e)
{
OleDbConnection oleConn = new OleDbConnection(connectionString)
DataTable dt = null;
OleDbDataAdapter oda = null;
string strSql = "select * from depart";
oda = new OleDbDataAdapter(strSql, oleConn);
dt = new DataTable("depart1");
oda.Fill(dt);

dataGridView1.DataSource = dt; -------------------------程序运行到这一句时出错
//dataGridView1.Columns["incnum"].HeaderText = "序号";
dataGridView1.Columns["depart"].HeaderText = "单位名称";
dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
}
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.BeginEdit(true);

}

private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}

求高手帮忙解决一下
...全文
291 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytcola 2012-02-29
  • 打赏
  • 举报
回复
kong19 说对了,应该按照
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
修改就对了。

EditProgrammatically模式是可以在界面编辑数据的。我放在别的窗口就没有问题,事件换为cellmouseenter,cellmouseleave 也没有问题
woshiemo001 2012-02-28
  • 打赏
  • 举报
回复
不知道,我一般不喜欢绑定的。
bdmh 2012-02-28
  • 打赏
  • 举报
回复
你看看是不是dataGridView1.DataSource = dt;触发了其他事件,而在那个事件中你没有容错,访问了不存在的值
kong19 2012-02-28
  • 打赏
  • 举报
回复
EditProgrammatically模式用户是不能在界面编辑数据的
kong19 2012-02-28
  • 打赏
  • 举报
回复
单击cell即可编辑
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
nkhuangyanping 2012-02-28
  • 打赏
  • 举报
回复
不知道,我一般不喜欢绑定的。
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧