datagridview 崩溃了 指定的参数已超出有效值的范围

kingsoft50 2015-10-22 10:31:22

按这图上的步骤点就会崩溃。不知道怎么调试了。

...全文
214 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
本拉灯 2015-10-22
  • 打赏
  • 举报
回复
dataGridView_f.Rows[0].Cells[3].Value = "sdfsf"; 这句出掉
kingsoft50 2015-10-22
  • 打赏
  • 举报
回复
附件怎么放上来
kingsoft50 2015-10-22
  • 打赏
  • 举报
回复
namespace Project2 { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.dataGridView_f = new System.Windows.Forms.DataGridView(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_f)).BeginInit(); this.SuspendLayout(); // // dataGridView_f // this.dataGridView_f.AllowUserToOrderColumns = true; this.dataGridView_f.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView_f.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; this.dataGridView_f.Location = new System.Drawing.Point(43, 12); this.dataGridView_f.Name = "dataGridView_f"; this.dataGridView_f.RowTemplate.Height = 23; this.dataGridView_f.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.dataGridView_f.Size = new System.Drawing.Size(704, 462); this.dataGridView_f.TabIndex = 0; this.dataGridView_f.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_f_CellEndEdit); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(903, 486); this.Controls.Add(this.dataGridView_f); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_f)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.DataGridView dataGridView_f; } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Project2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } [STAThread] static void Main() { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("dc1")); dt.Columns.Add(new DataColumn("dc2")); dt.Columns.Add(new DataColumn("dc3")); dt.Columns.Add(new DataColumn("Bm")); dt.Columns.Add(new DataColumn("sl")); dt.Columns.Add(new DataColumn("dc6")); dt.Columns.Add(new DataColumn("Ksrq")); dt.Columns.Add(new DataColumn("Jsrq")); for (int i = 0; i < 1; i++) { DataRow dr = dt.NewRow(); dr[0] = "0" + i; dr[1] = "dc1" + i; dr[2] = "dc2" + i; dr[3] = "1分厂"; dr[4] = 200.0000; dr[5] = 0.0000; dr[6] = "2015-10-11 00:00:00"; dr[7] = i; dt.Rows.Add(dr); } this.dataGridView_f.DataSource = dt; dataGridView_f.Columns["dc1"].ReadOnly = true; dataGridView_f.Columns["dc2"].ReadOnly = true; dataGridView_f.Columns["dc3"].ReadOnly = true; dataGridView_f.Columns["dc6"].ReadOnly = true; } private void dataGridView_f_CellEndEdit(object sender, DataGridViewCellEventArgs e) { dataGridView_f.Rows[0].Cells[3].Value = "sdfsf"; } } }
bdmh 2015-10-22
  • 打赏
  • 举报
回复
在错误代码处打断点,记住是哪步操作出错,然后看当时的各个对象的值,是否超出索引等,然后一步步往上追踪
BitCoffee 2015-10-22
  • 打赏
  • 举报
回复
贴代码吧,应该知道在哪行报错的吧
本拉灯 2015-10-22
  • 打赏
  • 举报
回复
你是想点某一行后把那一行的CELL值改掉? if(dataGridView_f.Rows.Count>0) { dataGridView_f.Rows[0].Cells[3].Value = "sdfsf"; 这句出掉 }
kingsoft50 2015-10-22
  • 打赏
  • 举报
回复
引用 5 楼 wyd1520 的回复:
dataGridView_f.Rows[0].Cells[3].Value = "sdfsf"; 这句出掉
不去掉不行吗
kingsoft50 2015-10-22
  • 打赏
  • 举报
回复
我就是想在点的那行的Cell【3】的值改成一个特定值,新增行除外

110,535

社区成员

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

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

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