- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我上一个问题的后续问题。你可以找到它here .
在最终解决了我的前一个问题后,我遇到了另一个问题,当我分配按钮以将值添加到 DataGrid 中的新行时,整个单元格将处于编辑模式,直到我单击其他单元格并填充它和/或制表符直到行尾(显然这个行不通),然后它将结束编辑模式。我正在使用 dataGridView.BeginEdit(true);
开始编辑模式,这样我就可以将一个值解析到文本框中(请参阅我之前的问题)。因此,如果我插入另一个值并按下按钮,新值将替换之前插入的旧值,因为它当前仍处于编辑模式。我尝试使用 dataGridView.EndEdit();
、dataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
、cell.DataGridView.EndEdit()
和 cell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
但显然这并没有结束编辑模式 :(我想要的是当我按下按钮时,文本框中的值将被插入到第一个文本框列中(这个已经工作了)。然后我不必单击或填充其他列来结束编辑模式。所以,我只需在文本框中输入任何内容,然后按下按钮直到我想停止。之后我开始填写另一栏。有谁知道如何解决这个问题? 编辑 1:您看到区别了吗?查看红色圆圈,最上面的那个当前处于编辑模式(因为它在箭头后面有一个 *)。底部的未处于编辑模式(我通过从组合框中选择一个项目手动完成)。这是我在上一个问题中要求的代码:
private void button1_Click(object sender, EventArgs e)
{
this.surat_jalanDataGridView.AllowUserToAddRows = true;
string tokNum = this.textBox1.Text;
if (this.textBox1.Text != "")
{
foreach (DataGridViewRow sjRow in this.surat_jalanDataGridView.Rows)
{
int RowIndex = surat_jalanDataGridView.RowCount - 1;
DataGridViewRow R = surat_jalanDataGridView.Rows[RowIndex];
DataTable table = new DataTable();
DataRow newRow = table.NewRow();
table.Rows.Add(newRow);
DataGridViewCell cell = R.Cells[2];
this.surat_jalanDataGridView.CurrentCell = cell;
this.surat_jalanDataGridView.BeginEdit(true);
R.Cells[2].Value = tokNum;
cell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
}
}
this.surat_jalanDataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
}
编辑 2:因此,我将 surat_jalan 从数据源拖放到我的窗口窗体中。然后它自动成为一个数据网格,属性名称为surat_jalanDataGridView
,数据源为surat_jalanBindingSource
最佳答案
抱歉耽搁了。在了解如何设置与 DataGridView 的绑定(bind)后,我肯定可以为您提供有关如何编辑网格绑定(bind)到的数据的更好指导。当您将表从 Visual Studio 的数据源 View 中拖放到 DataGridView 上时,Visual Studio 会为您做几件事。重要的是,您至少要了解所做工作的基础知识,这样您才能了解如何操作您的数据向前发展。 ThisMSDN 文章 how to setup binding to windows form controls from Visual Studio。最后一部分描述了你在做什么。最后一句话 “DataGridView 控件现在绑定(bind)到您拖到它上面的表格。DataSet、TableAdapter 和 BindingSource 出现在组件托盘中。” 是重要的。由于 Visual Studio 生成了将控件绑定(bind)到表的代码,因此您应该直接编辑数据以更新数据 GridView 。在这种情况下,您应该使用生成的数据集(我假设它被命名为 surat_jalanDataSet)。 Here描述了如何编辑 DataSet 中的数据。针对您的具体案例 Adding Rows .如果这有助于您实现目标,请告诉我。
关于c# - 如何自动结束 DataGridView 单元格编辑模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8736678/
我已经看到 Datagridview 不允许复制和粘贴多个单元格的文本,是否有一个简单的设置来启用它,或者我是否必须使用键处理程序和剪贴板数据存储来包含该功能。 用户想要在一行中复制 3 个单元格,并
我有一个 DataGridView我想限制用户只为特定列下的单元格输入数值的控件。我怎样才能在 DataGridView 中完成这种类型的验证细胞? 当我创建一个简单的文本框时是可能的,但是我如何验证
我正在尝试格式化 DataGridView,使用样式颜色等。DGV 在表单启动时加载(通过 buildGrid 方法),如构造函数代码中所示: public Report1(DataSet d
第一列中的小黑三角的官方DataGridView命名法描述是什么? 好像是标记了DataGridView.CurrentRow的位置,但是只是一个get属性,我想设置一下。 Grid with arr
我有点卡在我写的一些代码上 一个大纲是我正在从 SQL 数据库中读取一些数据,并希望将其显示在表单上的 DataGridView 中。我已经确认有数据从数据库返回,但不确定为什么没有出现。我遵循了互联
我的 DataTable从数据库中提取了三列,而我只需要将其中的两列绑定(bind)到 DataGridView .你能帮我吗? 最佳答案 这可能有用 DataSet ds = new DataSet
我有一个包含 Dataset ds 和 DataGridView dgv 的 WinForms 应用程序。 dgv 绑定(bind)到 ds。 ds 通过 Task() 更新,该 Task() 使用
我有DataGridView(dgHome),在parentForm(Home)中有一些列。子 Form(bill) 有 DataGridView(dgbill) 。我需要当我单击 dgHome 中的
我有两个具有相同列架构的 DataGridView(尽管有两个不同的 DataView 作为 DataSource - 如果这很重要)。将一行从一个数据 GridView 移动到另一个数据 GridV
基本上我有 2 个 DataGridView,我需要将行从一个复制到另一个。 到目前为止我已经尝试过: DataGridViewRowCollection tmpRowCollection = Dat
我正在尝试根据它包含的行数使我的 DataGridView 的高度自动调整。目前,我能够通过以下行完成此操作: dataGridView_SearchResults.AutoSize = true;
使用 WinForms、C# .Net 2.0 我正在向非绑定(bind) DataGridView 添加行。我想在其中一列中有一个 DataGridViewButtonColumn,在单击时删除该行
我有一个 datagridview(dataGridView1,其中包含一个 dataGridview2 列标题),其中我有一个复选框列,称为 dgvCkb,在 dataGridView1。当我在任何
对不起,如果这是一个愚蠢的问题。我在这方面很陌生。我应该如何将组合框添加到数据表,然后将其加载到数据 GridView 中?这可以做到吗?这是最好的方法吗?非常感谢有关如何执行此操作的提示和教程。先感
我正在尝试将 .txt 文件导入 DataGrid。问题是虽然代码大部分工作正常,但在导入 .txt 文件时,它会创建额外的行,例如 this ; OpenFileDialog ofd
datagridview 加载速度非常慢。我该如何优化它? datagridview有4-5千行。 我必须根据几个参数动态生成一个 datagridview。(来自数据库的数据,列数) 我必须从数据库
我怎样才能强制DataGridView.CellValueChanged DataGridViewCell.Value 立即引发事件(并将更改实际提交给 ComboBox 属性)单元格中的编辑控件更改
我有一个通过数据集从数据库中获取数据的功能 public DataSet getDataSet(string query) { DataSet ds = new DataSet()
客户希望能够键入一个字母并让系统滚动 DataGridView,这样具有与字母匹配的单元格的第一行将滚动到 DataGridView 的顶部 任何建议将不胜感激 最佳答案 我不确定您将如何有效地查找与
好吧,我有一个 DataGridView,用户可以在其中单击列标题进行排序。当他们在应用排序时添加新行时,直到验证该行时才会创建记录(在退出 newRow 之前他们无法执行此操作)。排序后如何才能选择
我是一名优秀的程序员,十分优秀!