我正在使用Windows窗体DataGridView来显示MyObject对象的通用列表.
首先,我将此集合包装到BindingSourceCollection中,然后:
dataGridView.DataSource = myBindingSource;
Run Code Online (Sandbox Code Playgroud)
我想要做的是允许用户通过单击表示MyObject中具体属性的列标题对列进行排序.
我读过一些文章,我应该在绑定之前进行排序.但是,如果我想实时对列进行排序,那么它就无法帮助我.
问题是,我到底需要做什么,所以我可以看到 DataGridView中的排序箭头,我可以对每一列进行排序?
如何从DataGridViewC#中读取数据?我想读一下表中的数据.如何浏览线条?
我使用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)
{
// TODO: This line of code loads data into the 'dbDataSet.Member' table. You can move, or remove it, as needed.
this.memberTableAdapter.Fill(this.dbDataSet.Member);
// TODO: This line of code …Run Code Online (Sandbox Code Playgroud) 我为我的DataGridView设置了一个ComboBoxColumn,并从枚举中设置了它的可选值.它主要按照我想要的方式运行,但有以下异常.
每当我单击下拉箭头然后选择其中一个枚举值时,它仍然处于"中间"状态,其中未触发CellValueChanged事件.我需要专注于另一个单元格或另一个控件来触发事件.
我还有一个DataGridView的Leaving事件的事件处理程序,它通过确保没有单元格为空来"验证"内容.
因此,如果我创建一行并填充所有单元格并进入(当前为空白)ComboBox列,请将其更改为值,然后单击"运行"按钮; 弹出我的错误对话框,因为ComboBox选择未"保存".
我怎么能绕过这个?有没有办法在我从下拉列表中选择一个值后自动"设置"该值?
谢谢!
我正在VS2010中创建一个Visual Basic程序.我正在使用DataGridView来显示.csv,但我不想显示左列,这很难看.
有什么形式可以隐藏它吗?

有没有办法使用LINQ样式查询来查找DataGridView行?我试图找到绑定到特定对象的那个并突出显示它.
MyDatagrid.Rows.FirstOrDefault(r => r.DataBoundItem == myItem).Selected = true;
Run Code Online (Sandbox Code Playgroud)
错误1'System.Windows.Forms.DataGridViewRowCollection'不包含'FirstOrDefault'的定义,并且没有可以找到接受类型'System.Windows.Forms.DataGridViewRowCollection'的第一个参数的扩展方法'FirstOrDefault'(你错过了吗?使用指令或程序集引用?)
我在网格中有一些数据,目前显示如下:
------------------
|Hd1| Value |
------------------
|A | A1 |
------------------
|A | A2 |
------------------
|A | A3 |
------------------
|A | A4 |
------------------
|B | B1 |
------------------
|B | B2 |
------------------
|B | B3 |
------------------
|B | B4 |
------------------
|B | B5 |
------------------
|C | C1 |
------------------
|C | C2 |
------------------
Run Code Online (Sandbox Code Playgroud)
我想让它看起来像这样:
|Hd | Value |
------------------
|A | A1 |
----------
| | A2 |
----------
| | A3 …Run Code Online (Sandbox Code Playgroud) 我需要将我的DataTable绑定到我的DataGridView.我这样做:
DTable = new DataTable();
SBind = new BindingSource();
//ServersTable - DataGridView
for (int i = 0; i < ServersTable.ColumnCount; ++i)
{
DTable.Columns.Add(new DataColumn(ServersTable.Columns[i].Name));
}
for (int i = 0; i < Apps.Count; ++i)
{
DataRow r = DTable.NewRow();
r.BeginEdit();
foreach (DataColumn c in DTable.Columns)
{
r[c.ColumnName] = //writing values
}
r.EndEdit();
DTable.Rows.Add(r);
}
SBind.DataSource = DTable;
ServersTable.DataSource = SBind;
Run Code Online (Sandbox Code Playgroud)
但我得到的只是DataTable ADDS NEW列到我的DataGridView.我不需要这个,我只需要在现有列下编写. 伙计们,帮助我吧!
给定特定的行号和列索引,如何计算DataGridView中的单元格位置(IE:Location.Point)?
我需要单元格位置的原因是我可以在单元格内放置一个按钮以允许文件夹浏览(datagridview显示文件夹路径).
关于如何实现这种欢迎的替代建议.
首先,我在这里查找了这个相关的问题, 但解决方案dataGridView1.Rows.Add()在我的情况下不起作用.
在我的Datagridview中,我有3个TextBox用于数据输入,2个ComboBox用于用户选择值(绑定到数据库中).我的一个TextBox被设置为只读,以便用户只能在数据网格外部填充它(使用普通的TexBox和一个Button).
当用户用数据填充DataGridView时,底部总是有一个空行; 所以我禁用了这个,我使用此代码来防止用户在datagrid中添加新行...
dataGridView1.AllowUserToAddRows = false
Run Code Online (Sandbox Code Playgroud)
我只想在用户单击上面提到的按钮时添加一个新行(这会引发错误).
我得到的错误信息是:
"当控件是数据绑定时,无法以编程方式将行添加到datagridview的行集合中"
带有红色箭头的那个是ComboBox,带有绿色箭头的那个是只读的TextBox
datagridview ×10
c# ×9
winforms ×8
data-binding ×3
.net ×2
linq ×1
radio-button ×1
sorting ×1
vb.net ×1