Tag: datagridview

Windows窗体DataGridView控件在同一列中具有不同的控件类型

是否可以在DataGridView中执行以下操作: 在同一列中,我想更改DataGridViewTextBoxColumn和DataGridViewComboBoxColumn之间每行的控件类型? (这是因为有时我想显示一个下拉列表,有时我只想让用户输入一个写意值)。 谢谢, PS我正在使用C#

使用数据源时无法更改datagridview单元格颜色

我有一个有趣的问题。 我正在尝试使用数据表作为datagridview的数据源。 我想为表中的一些单元格着色以指示各种事物,但由于某种原因,颜色将不会显示。 因此,以下代码显示了一个未着色的单元格。 dataGridView1.DataSource = table; dataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Yellow; 我只能在初始表单加载后显示一种颜色(例如在OnClick事件上设置单元格颜色)。 但是,如果我在下面的代码中显式创建视图的行和列,则着色有效。 foreach (DataColumn col in table.Columns) dataGridView1.Columns.Add(col.ColumnName, col.ColumnName); for (int i = 0; i < table.Rows.Count; i++) { var row = table.Rows[i]; object[] values = new object[table.Columns.Count]; for (int x = 0; x < table.Columns.Count; x++) values[x] = row[x].ToString(); dataGridView1.Rows.Add(values); } dataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Yellow; […]

由于,无法与Linq一起使用.Union

我有点困惑于这个问题。 希望我会得到一些帮助。 这就是重点。 我必须用我的SQL请求填充我的DataGridView: SELECT LOT.NumLot, EtatLot, NomEmploye FROM LOT JOIN AFFECTATION_LOT on LOT.NumLot=AFFECTATION_LOT.NumLot JOIN EMPLOYE on AFFECTATION_LOT.IdEmploye=EMPLOYE.IdEmploye WHERE EtatLot=’Libéré’ or EtatLot=’Suspendu’ or EtatLot=’Démarré’ UNION SELECT NumLot, EtatLot, null FROM LOT WHERE EtatLot=’Démarré’ 首先,我在第二个“SELECT”中使用了“null”值,因为“UNION”需要有3个参数,如第一个“SELECT”,并且我的表LOT中没有“NomEmploye”数据。 无论如何,该请求在SQL中运行良好。 但是当我尝试在LINQ中使用它时 string test = “null”; var listeLotControle = (from x in entBoum.LOT join aff in entBoum.AFFECTATION_LOT on x.NumLot equals aff.NumLot […]

DataGridView行高度自动resize

嗨我在C#.Net 3.5中使用DataGridView,我希望所有行的高度设置为Autosize ..我已经定义了WrapMode = true但没有获得高度自动resize 所以请指导我 谢谢

按ENTER键阻止Windows窗体DataGridView移动到下一行

我知道这个问题(或其变体)已经出现过几次。 但到目前为止,我还没有找到适合我的解决方案。 我正在使用包含DataGridView的C#编写Windows窗体UserControl,以呈现员工数据的只读集合,作为一种美化的选择列表。 网格是只读的(填充在control_load上)并将FullRowSelect设置为选择方法。 我希望用户能够双击鼠标或使用当前行上的Enter键来选择Id值表单,该行将被订阅者接收以便在其他地方处理。 在分配我选择的员工值后处理KeyDown事件时,我尝试阻止选择移动到下一行。 这种方法很好, 除非 CurrentCell.RowIndex为零。 有谁知道我怎么能让这个工作为CurrentCell.Rowindex = 0? private void dgvEmployees_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (dgvEmployees.CurrentRow.Cells[0].Value != null) { this.SelectedEmployeeId = (int) dgvEmployees.CurrentRow.Cells[0].Value; this.OnEmployeeSelected(new TestEmployeeGridListEventArgs() { SelectedEmployeeId = this.SelectedEmployeeId, SelectedEmployeeIdentifier = dgvEmployees.CurrentRow.Cells[“Identifier”].Value.ToString() }); } // Prevent pressing moving onto the next row. if (dgvEmployees.CurrentCell.RowIndex > […]

C# – 将DataGridView保存到文件并加载

首先,我所拥有的是一个简单的Winforms应用程序,只有一个保存和加载按钮,以及一个用于保存数据的datagridview控件。 我要做的是将一些数据输入控件,点击保存按钮,它将所有数据保存到计算机本地的文件中,当我点击加载时,它加载文件并适当填充控件,保持所有行,列和数据与保存时相同。 虽然这对我来说听起来相当简单,但我似乎无法想出一种保存和加载数据的好方法。 我可以获得一些指示或示例来让自己开始吗? 谢谢。

如何将DataGridView单元格的字体设为特定颜色?

此代码适用于使单元格的背景为蓝色: DataGridViewRow dgvr = dataGridViewLifeSchedule.Rows[rowToPopulate]; dgvr.Cells[colName].Style.BackColor = Color.Blue; dgvr.Cells[colName].Style.ForeColor = Color.Yellow; …但ForeColor的效果并不是我所期望/希望的:字体颜色仍然是黑色,而不是黄色。 如何将字体颜色设置为黄色?

确保dataGridView列中的文本换行

我有一个特定列的dataGridView。 当我在dataGridView中编写长文本时,它会向我显示带有省略号的缩短版本,因为列不够宽,无法显示整个字符串。 | textdsadasda… | 如果我想dataGridView在下一行显示这个文本,或者包装文本,我该怎么办? | textdsadasda | | dasdasa | (continuation of line above) 如何才能做到这一点?

如何找出屏幕上当前的DataGridView行?

在我的C#(2010)应用程序中,我在虚拟模式下有一个DataGridView,它拥有数千行。 是否有可能找出目前屏幕上的哪些细胞?

任何列中DataGridView标头中的复选框

实际上我已经解决了DGV标题中有复选框的问题,这里是代码 Rectangle rect = dataGridView1.GetCellDisplayRectangle(0, -1, true); rect.Y = 3; rect.X = rect.Location.X + (rect.Width/4); CheckBox checkboxHeader = new CheckBox(); checkboxHeader.Name = “checkboxHeader”; //datagridview[0, 0].ToolTipText = “sdfsdf”; checkboxHeader.Size = new Size(18, 18); checkboxHeader.Location = rect.Location; checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged); dataGridView1.Controls.Add(checkboxHeader); 实际上首先我在我的DGV上添加了一个列,这是一个DataGridViewCheckBoxColumn,然后在添加上面代码的表单的加载中,我的问题就像你在下面看到的第一列它工作得很好,因为我可以设置rect.X in该列的代码,但是通知符列如何以编程方式知道此列标题的位置,因为日志列可以通过最大化和这些内容进行更改。 最后,我怎么能以编程的方式知道列[3]的标题位置是什么….提前谢谢