Tag: datagridview

DataGridView选定的行向上和向下移动

如何允许向上或向下移动DataGridView(DGV)中的选定行。 我之前用ListView完成了这个。 不幸的是,对我来说,更换DGV不是一种选择( 诅咒 )。 顺便说一句,DGV数据源是一个通用集合。 DGV侧面有两个按钮,是,UP和Down。 任何人都可以帮我指出正确的方向。 我确实有我用于ListView的代码,如果它有帮助(它没有帮助我)。

如何在每个单元格中设置具有不同DataSource的DataGridView ComboBoxColumn?

我正在设置一个像这样的DataGridViewComboBoxColumn : var newColumn = new DataGridViewComboBoxColumn() { Name = “abc” }; newColumn.DataSource = new string[] { “a”, “b”, “c” }; dgv.Columns.Add(newColumn); 这样可行:每行在该列中都有一个下拉框,填充a,b,c。 但是,现在我想修剪某些行的列表。 我试图像这样设置每行的列表: foreach (DataGridViewRow row in dgv.Rows) { var cell = (DataGridViewComboBoxCell)(row.Cells[“abc”]); cell.DataSource = new string[] { “a”, “c” }; } 但是,此代码无效 – 每行仍显示“a”,“b”,“c”。 我尝试用new string[] new List和new BindingList替换new string[] ,两者都无济于事。 我也试过删除设置newColumn.DataSource的代码,但是列表是空的。 […]

一键直接访问DataGridViewcombobox?

单击一次以在datagridview中选择一行,然后再次单击以单击该行中的控件(在本例中为combobox),我感到很恼火。 有没有办法配置这个东西,所有这一切都可以通过一次鼠标点击而不是两个?

DataGridView使用Business Objects排序列

我正在设置我的DataGridView,如下所示: jobs = new List(); uxJobList.AutoGenerateColumns = false; jobListBindingSource.DataSource = jobs; uxJobList.DataSource = jobListBindingSource; int newColumn; newColumn = uxJobList.Columns.Add(“Id”, “Job No.”); uxJobList.Columns[newColumn].DataPropertyName = “Id”; uxJobList.Columns[newColumn].DefaultCellStyle.Format = Global.JobIdFormat; uxJobList.Columns[newColumn].DefaultCellStyle.Font = new Font(uxJobList.DefaultCellStyle.Font, FontStyle.Bold); uxJobList.Columns[newColumn].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; uxJobList.Columns[newColumn].Width = 62; uxJobList.Columns[newColumn].Resizable = DataGridViewTriState.False; uxJobList.Columns[newColumn].SortMode = DataGridViewColumnSortMode.Automatic; : : DisplayJob类的外观如下: public class DisplayJob { public DisplayJob(int id) { […]

如何在使用自定义DataSource时隐藏DataGridView的列?

我在c#中有一个小应用程序,它有一个使用以下内容填充的DataGridView: grid.DataSource = MyDatasource array; MyClass保存列的结构,它看起来像这样: class MyDatasource { private string column1; private string column2; public MyDatasource(string arg1, string arg2) { this.column1 = arg1; this.column2 = arg2; } public string column1 { get { return this.column1; } set { this.column1 = value; } } public string column2 { get { return this.column2; } set { […]

如何向datagridview winforms添加行?

我想在datagridview添加行。 我尝试了很多可能性,但它没有出现任何可能性。 我认为最好的解决方案是创建一个数据表,然后将其用作gridview的数据源。 我用winforms。 请,欢迎任何其他想法。 这是我到目前为止所尝试的: public DataTable GetResultsTable() { DataTable table = new DataTable(); table.Columns.Add(“Name”.ToString()); table.Columns.Add(“Color”.ToString()); DataRow dr; dr = table.NewRow(); dr[“Name”] = “Mike”; dr[“Color “] = “blue”; table.AcceptChanges(); return table; } public void gridview() { datagridview1.DataSource=null; datagridview1.DataSource=table; }

在DataGridView列中计算

我有一个DataGridView,我想在其中将两个不同列的值汇总到第三列。 示例DataGridView: AB Total 1 2 3 25 35 60 5 -5 0 我想在A & B column输入值或离开当前行后,总共添加(A + B)。 并且还想将Total Column设置为ReadOnly 。

如何从后台线程正确更新数据绑定数据网格视图

我有一个实现INotifyPropertyChanged的自定义对象。 我有这些对象的集合,其中集合基于BindingList我已经为集合创建了一个绑定源,并设置了bindingsource和datagridview的数据源。 一切都很好,除了我需要从后台线程更新自定义对象的属性。 当我这样做时,我收到以下错误: BindingSource不能是自己的数据源。 不要将DataSource和DataMember属性设置为引用BindingSource的值 我发现以下post似乎有我的确切问题(和解决方案?)但我无法弄明白。 http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/3566f7c7-eb47-422e-ab09-9549a18da360/ 我在业务对象中创建并初始化了每个post的oper变量,然后将两个事件函数放入我的集合类中。 这个编译正确,但运行时毫无例外地挂起。 我看过许多post说使用Invoke / Begin Invoke,但是我没有调用UI上的任何函数,只是更新业务对象,所以我不确定在哪里调用invoke。 一个限制:我希望业务对象不知道谁在显示它(因为有多个消费者),因此将GUI引用发送到业务对象,以便我以后能够使用这些引用调用invoke不是一个选项。

DataGridView的自定义列名以及关联的DataSource

如何为DataGridView和关联的DataSource设置自定义列名? 这是一些代码: class Key { public string Value { get; } public DateTime ExpirationDate { get; } } List keys = new List(); …// fill keys collection DataGridView dataGridView = createAndInitializeDataGridView(); dataGridView.DataSource = keys; 这为dataGridView提供了列名“Value”和“ExpirationDate”。 我应该如何继续将名称更改为“Key”和“Expire”?

如何在第一次单击时激活combobox(Datagridview)

在winforms中,您需要单击combobox两次以正确激活它 – 第一次聚焦它,第二次实际获取下拉列表。 如何更改此行为以便在第一次单击时激活? 这适用于DATAGRIDVIEWcombobox。