Tag: datagridview

WPF / MVVM:在不同视图中同步滚动两个数据网格

我有两个数据网格并排绑定到不同的数据表,每个数据表都有自己的视图。 数据表都具有相同的行数,我希望两个网格保持相同的滚动位置。 我很难找到使用MVVM做到这一点的方法……任何人都有任何想法? 谢谢! -Steven

Winform DatagridView数字列排序

我只使用一个简单的DataGridView来保存一堆数据(搞笑)。 我在特定列中有小数。 但是当按照那个十进制列排序时,它会错误地命令它。 例如 : 开始订单可能是: 0.56 3.45 500.89 20078.90 1.56 100.29 2.39 结束顺序是: 0.56 100.29 1.56 20078.90 2.39 3.45 500.89 如您所见,它从第一个数字开始命令它。 然后以这种方式订购它。 我想可能我可以将列设置为不同的“ColumnType”,并且可以自动执行此操作。 但是没有“数字”或“十进制”列类型。 我在MSDN上查找问题,我可以找到可以在DataGridView上使用的“排序”方法。 但是解释有点过头了,示例没有使用数字,只有文字,所以我看不出我应该如何切换。 任何帮助将非常感激。

冻结的最后一行DataGridView作为列的总和?

是否可以将DataGridView的最后一行作为列的总和,并且最后一行始终显示/被冻结?

添加行时,DataGridView抛出“InvalidOperationException:Operation无效…”

我想在用户点击单元格时出现OpenFileDialog,然后在单元格中显示结果。 这一切都有效,除了DataGridView显示一个额外的行,用于将值添加到它所绑定的列表中。 如果dataGridView.AllowUserToAddNewRows == true ,则显示该行,这就是我想要的。 我不想要的是当以编程方式编辑该行时应用程序崩溃; 相反,它应该完全按照用户手动编辑该行的方式执行(将新行添加到基础列表,将另一个空行推入网格以添加值)。 我读到了SendKeys.Send(),它应该使DataGridView的行为与用户输入的值完全相同; 但是,它也不起作用。 这是我正在尝试的: if (openFileDialog1.ShowDialog() == DialogResult.OK) { dataGridView1.CurrentCell = cell; //simply doing a cell.Value = etc. will cause the program to crash cell.ReadOnly = false; dataGridView1.Columns[cell.ColumnIndex].ReadOnly = false; dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter; dataGridView1.BeginEdit(true); SendKeys.Send(openFileDialog1.FileName + “{Enter}”); dataGridView1.EndEdit(); cell.ReadOnly = true; dataGridView1.Columns[cell.ColumnIndex].ReadOnly = true; } //I would expect […]

WinForm绑定单选按钮

我使用VS2010,然后将Member datagridview拖放到设计视图中。 之后,我将名称成员文本字段拖放到设计视图,然后尝试编辑和保存。 它运作正常。 然后我拖放性爱单选按钮来设计视图。 但绑定它不起作用。 我怎么能在这种情况下绑定? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Test7 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void memberBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.memberBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.dbDataSet); } private void Form1_Load(object sender, EventArgs e) […]

如何在multithreading应用程序中安全地填充数据和Refresh()DataGridView?

我的应用程序有一个DataGridView对象和一个MousePos类型的List。 MousePos是一个自定义类,它包含鼠标X,Y坐标(“Point”类型)和此位置的运行计数。 我有一个线程(System.Timers.Timer)每秒引发一次事件,检查鼠标位置,添加和/或更新此列表上鼠标位置的计数。 我想有一个类似的运行线程(再次,我认为System.Timers.Timer是一个不错的选择),它会再次引发一次事件,每秒自动刷新()DataGridView,以便用户可以看到数据屏幕更新。 (就像TaskManager一样。) 不幸的是,调用DataGridView.Refresh()方法会导致VS2005停止执行,并注意到我遇到了跨线程的情况。 如果我理解正确,我现在有3个主题: 主UI线程 MousePos List线程(Timer) DataGridView刷新线程(计时器) 为了看看我是否可以在主线程上刷新()DataGridView,我在表单中添加了一个名为DataGridView.Refresh()的按钮,但这(奇怪的是)没有做任何事情。 我发现了一个似乎表明如果我设置DataGridView.DataSource = null并返回到我的List的主题,它会刷新datagrid。 确实这有效,但只能通过按钮(在主线程上处理)。 所以这个问题变成了两个问题: 将DataGridView.DataSource设置为null并返回到我的List是一种可接受的刷新数据网格的方法吗? (对我来说似乎效率低下……) 如何在multithreading环境中安全地执行此操作? 这是我到目前为止编写的代码(C#/。Net 2.0) public partial class Form1 : Form { private static List mousePositionList = new List(); private static System.Timers.Timer mouseCheck = new System.Timers.Timer(1000); private static System.Timers.Timer refreshWindow = new System.Timers.Timer(1000); public Form1() { InitializeComponent(); mousePositionList.Add(new […]

如何将值插入DataGridView Cell?

我有DataGridView (包含任何DataBase ) 我想在任何Cell中插入任何值(并且该值将保存在DataBase上) 怎么做(在C#中) 提前致谢

C#将DataTable绑定到现有的DataGridView列定义

我一直在努力处理NullReferenceException并希望有人能指出我正确的方向。 我正在尝试创建并填充DataTable,然后在DataGridView控件中显示结果。 接下来是基本代码,Execution在我调用新的UpdateResults_Delegate时停止并显示NullReferenceException。 奇怪的是,我可以在从QueryEventEntries返回之前成功跟踪entries.Rows.Count,因此我至少可以显示1)条目不是空引用,2)DataTable包含数据行。 我知道我必须做错事,但我不知道是什么。 private void UpdateResults(DataTable entries) { dataGridView.DataSource = entries; } private void button_Click(object sender, EventArgs e) { PerformQuery(); } private void PerformQuery() { DateTime start = new DateTime(dateTimePicker1.Value.Year, dateTimePicker1.Value.Month, dateTimePicker1.Value.Day, 0, 0, 0); DateTime stop = new DateTime(dateTimePicker2.Value.Year, dateTimePicker2.Value.Month, dateTimePicker2.Value.Day, 0, 0, 0); DataTable entries = QueryEventEntries(start, stop); UpdateResults(entries); } private […]

如何获取Datagridview Combobox的TEXT选项?

如何获取DataGridView中的Combobox选定项目文本 ? 我尝试使用以下代码: dataGridView1.Rows[1].Cells[1].Value.ToString() 但是,这会给出与此单元格关联的值,而不是Combobox选定的项目文本。 我也试过这个: DataGridViewComboBoxCell cell = dataGridView1[1,1] as DataGridViewComboBoxCell; string value = cell.Value.ToString(); 但是,这也没有帮助。 我很感激你的帮助。 提前致谢! 编辑: 比方说,我们有一个Combobox文本为No和Yes ,值分别为0和1。 当我想改变时,我想要的是文本Yes或No 。 但我得到的是使用上述代码的值0/1。 希望能让事情变得清晰。 更新: 好的,所以我一直在研究这个问题,经过很多努力并在我的成员的帮助下,我已经能够解决问题并获得所需的解决方案: 这是解决方案: string SelectedText = Convert.ToString(dataGridView1.Rows[0].Cells[1].FormattedValue.ToString());

将dataGridView中的选定行检索为对象

我有一个这样的课: public partial class AdressBokPerson { public long Session { get; set; } public string Förnamn { get; set; } public string Efternamn { get; set; } public string Mail { get; set; } } 添加到列表中: private readonly List _avp = new List(); 通过绑定到dataGridView,如下所示: dataGridView1.DataSource = _avp; 到现在为止还挺好。 这是我的问题: 当选择dataGridView中的行时,如何找出“哪个”对象被选中。 我需要以某种方式检索所选对象AdressBokPerson 。