Tag: datagridview

用自定义图像替换“new-row”的DataGridViewImageColumn中的“red-cross”

如果在winforms DataGridView指定AllowUserToAddRows ,则用户可以在网格中手动添加新行。 现在我想在一列中添加一个图像按钮,它也应该在新行中显示。 但我不能让它显示图像,只有红十字图像显示就像没有找到。 这是带有令人讨厌的图像的网格的屏幕截图: 我想要显示的图像位于Properties.Resources.Assign_OneToMany 。 我到处搜索并尝试了几种方式(在构造函数中): var assignChargeColumn = (DataGridViewImageColumn)this.GrdChargeArrivalPart.Columns[“AssignCharge”]; assignChargeColumn.DefaultCellStyle.NullValue = null; assignChargeColumn.DefaultCellStyle.NullValue = Properties.Resources.Assign_OneToMany; 要么 private void GrdChargeArrivalPart_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) { var grid = (DataGridView)sender; DataGridViewRow row = grid.Rows[e.RowIndex]; if (row.IsNewRow) { var imageCell = (DataGridViewImageCell) row.Cells[“AssignCharge”]; imageCell.Value = new Bitmap(1, 1); // or …: imageCell.Value = Properties.Resources.Assign_OneToMany; // […]

替换DataGridView中的DateTime.MinValue

我正在处理名称记录应用程序,信息存储在SQLite数据库中。 数据库中的所有列都是TEXT类型,除了出生日期列,这是DATETIME。 我转移到SQLite数据库的原始Access数据库允许出生日期为空,所以当我复制它时,我将所有空值设置为DateTime.MinValue。 在我的应用程序中,出生日期列的格式如下: DataGridViewTextBoxColumn dateOfBirth = new DataGridViewTextBoxColumn(); dateOfBirth.HeaderText = “DOB”; dateOfBirth.DataPropertyName = “DateOfBirth”; dateOfBirth.Width = 75; dateOfBirth.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dateOfBirth.DefaultCellStyle.Format = “MM/dd/yyyy”; 我的问题是没有出生日期的行,数据库有DateTime.MinValue,它在我的DataGridView中显示为01/01/0001。 我正在寻找一种方法来替换我的DataGridView中的空字符串(“”)01/01/0001。 private void resultsGrid_DateFormatting(object sender, System.Windows.Forms.DataGridViewCellFormattingEventArgs e) { if(resultsGrid.Columns[e.ColumnIndex].Name.Equals(“DateOfBirth”)) { if ((DateTime)(resultsGrid.CurrentRow.Cells[“DateOfBirth”].Value) == DateTime.MinValue) { // Set cell value to “” } } } 任何人都知道我如何用空字符串替换DataGridView中的DateTime.MinValue? 谢谢! 编辑:使用DateTime转换单元格值允许我必须使用if语句,但我仍然无法找出用空字符串替换MinValues的编码。

如何将DataGridView定位到特定行(以便所选行位于底部)?

作为一个类似于这个问题的问题 ,我还有一个带有DataGridView的应用程序。 我想定位行,使特定行位于列表可见部分的底部。 这是响应按钮单击将行向下移动一行。 我想保持我正在移动的行上的选择(我已经有了这部分工作)。 如果有很多行,则所选行可能会移动到可见区域下方。 我想向下滚动,直到它位于可见区域的底部。 FirstDisplayedScrollingRowIndex似乎没有LastDisplayedScrollingRowIndex伴侣。 有任何想法吗? 谢谢。

尝试更新datagridview时接口冻结

我使用下面的代码来复制文件并在datagridview设置状态列以通知用户连接已启动但是当我按下按钮执行方法时接口冻结… 我已经搜索了很多我知道使用task.run(); 是不可能的,因为它不包含在.not 4它是.net 4.5的新function我也知道Task.Factory.StartNew(); 可以使用而不是使用task.run(),但它有很多风险作为隐式线程,我知道使用显式线程也很好选择一个 我希望得到一些帮助继续我的项目并继续学习,而不是在那个无聊的点上堆积 public void PatchUpdates() { try { foreach (DataGridViewRow OfficeListRow in DGV_OfficeList.Rows) { string OfficeIPAddress = OfficeListRow.Cells[3].Value.ToString(); foreach (DataGridViewRow FileListRow in DGV_FileList.Rows) { string SoruceFileNamePath = FileListRow.Cells[4].Value.ToString(); string DestinationFileNamePath = @”\\” + OfficeIPAddress + @”\usb1_1\test\” + Path.GetFileName(SoruceFileNamePath); //check if connection to remote server is available var vResult = CheckOffice(OfficeIPAddress); […]

如何在DataGridView中获取选定的DataRow?

我有一个绑定到DataGridView的DataTable。 我在DGV中启用了FullRowSelect。 有没有办法将所选行作为DataRow获取,以便我可以获得对所选行的值的强类型访问?

如何使用LINQ查找DataGridView行?

有没有办法使用LINQ样式查询来查找DataGridView行? 我试图找到绑定到特定对象的那个并突出显示它。 MyDatagrid.Rows.FirstOrDefault(r => r.DataBoundItem == myItem).Selected = true; 错误1’System.Windows.Forms.DataGridViewRowCollection’不包含’FirstOrDefault’的定义,并且没有可以找到接受类型’System.Windows.Forms.DataGridViewRowCollection’的第一个参数的扩展方法’FirstOrDefault’(你错过了吗?使用指令或程序集引用?)

如何将DataSource转换为List ?

我有以下方法在DataGridView上加载产品 private void LoadProducts(List products) { Source.DataSource = products; // Source is BindingSource ProductsDataGrid.DataSource = Source; } 而现在我正试图让我回来保存它们,如下图所示。 private void SaveAll() { Repository repository = Repository.Instance; List products = (List)Source.DataSource; Console.WriteLine(“Este es el número {0}”, products.Count); repository.SaveAll(products); notificacionLbl.Visible = false; } 但是我在这一行得到了一个InvalidCastException : List products = (List)Source.DataSource; 那么如何将DataSource转换为List呢?

DataGridView RowCount vs Rows.Count

如果我有一个DataGridView uxChargeBackDataGridView 。 以下语法是否有所不同但有效相同?: int numRows = uxChargeBackDataGridView.Rows.Count; int numRowCount = uxChargeBackDataGridView.RowCount; 如果uxChargeBackDataGridView为空,则两者都等于1; 因此逻辑上认为,如果其中任何一个等于1,我可以假设用户没有输入任何数据吗? WinFroms有一个按钮RUN – 我可以使用上面的测试来决定是否启用此按钮,即仅number of rows is >1时启用按钮?

如何使用属性网格在DataGridView中实现多行标题?

我试图在属性网格中为DataGridView提供多行标题文本,我使用了\n , \r\n但是没有用于获取多行中的标题文本。 除了设置列的宽度以及使用属性网格留下空间以使其工作之外,还有其他方法吗?

以编程方式在DataGridView中设置ComboBox的选定索引

我想在避免数据绑定的同时,在DataGridView的ComboBox中设置所选索引。 它没有连接到DB。 我找到的所有解决方案都将DataGridView连接到数据库,我没有,所以我无法解决问题。