Tag: datagridview

DataSource更改之前的DataGridView事件

有没有我可以在DataGridView中触发DataSourceChanging事件。 DataGridView具有DataSourceChanged事件(我相信)在DataSource绑定到DataGridView之后。 我希望在属性改变之前做一些事情。 我的示例代码…… private void LoadGrid() { // I do some things like saving user settings here DtgRefundAssign.DataSource = BLL.GetDataSource(parameter1, parameter2); //Just to illustrate // And restore them after the datasource is bound } 我需要以多种forms做类似的事情。 只要数据源发生变化,只需考虑开发一个执行此操作的通用过程。 恢复部分可以使用DataSourceChanged事件完成…但是我应该处理哪个事件来执行保存部分?

无法在Winforms中使用C#使用datagridview添加新行

我想制作一个简单的数据输入应用程序。 所以我做了以下几点 创建了一个新的Windows窗体应用程序 添加了DataGridView 添加了一个新的DataSource(SQL Express数据库,具有3列的单个表 – id,name,number)id是整数并且是主键 当设计器自动填充DataSet时,BindingSource和TableAdapter运行了应用程序。 当我运行应用程序时,它显示了现有数据,我可以通过单击空行或编辑现有数据来添加新数据。 但它没有为我存储(提交)数据。 在我做出更改之后,我就关闭了应用程序。 我记得前一段时间这样做,它曾用于反映变化。 我是否必须添加任何代码才能提交更改?

图像从资源加载时在DataGridView中显示红色“X”

我试图从我的项目的资源添加一个图像列到一个新创建的DataGridView这是代码: DataGridViewImageColumn myImage = new DataGridViewImageColumn(); myImage.Image = Properties.Resources.bullet_arrow_down; myImage.ImageLayout = DataGridViewImageCellLayout.Zoom; myImage.Name = “Remove”; DirectoryGrid.Columns.Add(myImage); 但是当我运行代码时,我得到默认的“X”图像,而不是我选择的图像。 图像是否超大?(它是32×32 ico)我必须添加一些位转换吗? 大多数代码在线想要你从文件加载图像,但我认为这是凌乱的。但如果我必须这样做。但我发现一些引用,表明这个代码应该工作正常。 请注意,此图像用于另一个按钮,其工作正常。 我也尝试过其他图像。

如何在没有任何数据库的情况下保存datagridview?

我创建了一个C #Windows表单,其中包含一个DataGridView,我可以在此DatagridView中添加或删除一些行,但现在我想知道如何保存我的更改,所以每次打开窗口时我都可以看到添加的行。 PS:我必须提到我不想使用任何数据库,有什么解决方案吗? 是否可以使用C#应用程序设置执行此操作?

DataGridView数据绑定

我举一个简单的例子来解释我想要的东西: 我定义了一个名为Student的类,它有两个属性: Name和Subjects 。 public class Student() { public string Name; public List Subjects; } 我创建了两个Student类实例,例如: List jackSubjects = new List(); jackSubjects.Add(“Math”); jackSubjects.Add(“Physics”); Student Jack = new Student(“Jack”, jackSubjects); List alanSubjects = new List(); alanSubjects.Add(“Accounting”); alanSubjects.Add(“Science”); Student Alan = new Student(“Alan”, alanSubjects); 然后我创建一个List studentList: List studentList = new List(); studentList.Add(Jack); studentList.Add(Alan); 我的问题是,有什么方法可以用DataGridView这个studentList进行数据绑定,如下所示: dataGridView.DataSource = studentList; […]

如何在datagridview中停止闪烁

我正在使用datagridview通过绑定数据库来显示来自访问数据库的数据 DataGridView.DataSource = dTable; 当我通过在datagridview中滚动来向下移动光标时,当它更新时,滚动条会自动上升,并且行中的第一个单元格会突出显示。 gridview中有超过300行。如果我想查看最后一个脚本,它会自动占用我的数据,并且每隔5秒更新一次datagridview。 我不希望滚动条上升我希望我的滚动条在我更新之前放置它。 提前致谢。

Datagridview FirstDisplayedScrollingRowIndex不在网格底部工作

为了滚动数据网格,我使用以下代码: dataGridView1.FirstDisplayedScrollingRowIndex = currentRowIndexInGridView; dataGridView1.Update(); 这适用于不在网格底部的行。 如果我将它用于底行,那么当我在调试期间检查它时,setter不会将它设置为我想要的值。 例如,我设置了FirstDisplayedScrollingRowIndex = 103,但在赋值后,FirstDisplayedScrollingRowIndex的值为90,因此所需的行不可见。 从某一点开始它停止滚动,我看不到最后5行。 如果我要添加新行并将它们设置为显示,它会滚动一个,但我再也看不到最后5行了。 我认为它与事实有关,我的一些行有不同的高度和一些内部的DisplayedRowCount情绪失败??? 有没有办法检测这种情况,然后强制滚动到数据网格的底部? 编辑: FirstDisplayedScrollingRowIndex setter的重要部分在Reflector中如下所示: if (value > this.displayedBandsInfo.FirstDisplayedScrollingRow) { int rows = this.Rows.GetRowCount(DataGridViewElementStates.Visible, this.displayedBandsInfo.FirstDisplayedScrollingRow, value); this.ScrollRowsByCount(rows, (rows > 1) ? ScrollEventType.LargeIncrement : ScrollEventType.SmallIncrement); } else { this.ScrollRowIntoView(-1, value, true, false); } 计算rows变量时似乎有错误。

如何对绑定到自定义对象集合的DataGridView进行排序?

所以我一直在关注Windows Forms控件的数据绑定这个指南 (MAD道具给作者,这个指南很棒),我用它来创建一个自定义类并将DataGridView绑定到这个类的集合: class CompleteJobListEntry { private string _jobName; private Image _jobStatus; private DateTime _jobAddedDate; private string _jobAddedScanner; private string _jobAddedUser; private string _jobLastActivity; private DateTime _jobActivityDate; private string _jobActivityUser; public string JobName { get { return _jobName; } set { this._jobName = value; } } public Image JobStatus { get { return _jobStatus; } […]

将多个列表绑定到DataGridView

我有两个静态列表,它们将绑定到DataGridView以及两个按钮字段。 我只能绑定一个列表和一个按钮字段。 是否可以将多个列表绑定到DataGridView ? ServiceController objSAVAdminService = new ServiceController(“SAVAdminService”); ServiceController objSAVService = new ServiceController(“SAVService”); ServiceController objPPVService = new ServiceController(“PPVService”); ServiceController objMLLService = new ServiceController(“MLLService”); List ServiceName = new List(); List ServiceStatus = new List(); ServiceName.Add(objSAVService.ServiceName.ToString()); ServiceName.Add(objSAVAdminService.ServiceName.ToString()); ServiceName.Add(objPPVService.ServiceName.ToString()); ServiceName.Add(objMLLService.ServiceName.ToString()); ServiceStatus.Add( objSAVService.Status.ToString()); ServiceStatus.Add( objSAVAdminService.Status.ToString()); ServiceStatus.Add( objPPVService.Status.ToString()); ServiceStatus.Add( objMLLService.Status.ToString()); 我需要将这两个列表绑定到DataGridView并且每行上还有两个按钮来启动或停止相应的服务。

DataGridView动态更改数据源

基本上当我创建这个DataGridView时,我有这个代码来填补它 public void fillDataGrid(IQueryable patients) { dgvMyPatients.DataSource = patients; dgvMyPatients.Columns[“Pat_Last_Name”].DisplayIndex = 0; dgvMyPatients.Columns[“Pat_First_Name”].DisplayIndex = 1; dgvMyPatients.Columns[“Pat_Middle_Name”].DisplayIndex = 2; dgvMyPatients.Columns[“Pat_First_Name”].HeaderText = “First Name”; dgvMyPatients.Columns[“Pat_Last_Name”].HeaderText = “Last Name”; dgvMyPatients.Columns[“Pat_Middle_Name”].HeaderText = “Middle Name”; } public IQueryable showMyPatients() { DbClassesDataContext myDb = new DbClassesDataContext(dbPath); var patientInfo = from patients in myDb.PatientInfos where patients.Phy_ID == physcianID select patients; return patientInfo; […]