Tag: datagridview

DataBindingComplete被多次调用

我在c#中创建一个windows应用程序, 我有1个Datagridview,在我设置它的DataSource后它应该有3行。 我已将2个事件Habdlers附加到Datagrdview void dgvProductList_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { //this gets called 4 times } private void dgvProductList_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { //gets called 2 times. } 为什么会发生这种情况?我将如何解决这个问题? 提前致谢…

DataGridView将文本放在RowHeader的ColumnHeader中

是否可以将文本添加到RowHeader的ColumnHeader中。 我把自动增量放入我的DataGridView的Rowheaders中,我想把“不” 在那上面。 就像是: //Autoincrement RowHeaders foreach (DataGridViewRow row in myDGV.Rows) { row.HeaderCell.Value = String.Format(“{0}”, row.Index + 1); } No. | myColumn 1 | myColumn 2 1 | myText | myText 2 | myText | myText //the “No.” column are actually RowHeaders

DataGridView虚拟模式以简单列表作为源

之前我问过一个关于我的dataGridView性能的问题,因为它显示了大量的行,这些行是根据传入的流添加的。 给出了多个解决方案,其中一个解决方案启用虚拟模式 MSDN有一篇关于这个主题的文章,但它比我使用数据库和可编辑字段所需要的更复杂。 我的DataGridView仅用于显示,我显示的数据放在List中。 在我接受答案后,我收到了这个链接: http : //www.codeproject.com/Articles/23937/PagingANN-with havenGridView-in-VirtualMode 。 即使它使用数据库示例,它也更适合我需要的东西。 包含我要显示的数据的My List声明如下: List captureResults = new List(); ResultRow对象定义如下: /* Simplified */ public class ResultRow { private int first = 0; private string second = “”; private UInt64 third = 0; private IPAddress fourth = null; /* etc */ public ResultRow() { } public void […]

将Entity Framework用作DataGridView的数据源的正确方法是什么?

我尝试通过DataGridView Designer设置DataSource但它没有在那里列出然后我通过生成DataSet的向导生成了新的数据源。 但是现在我的项目+ DataSet中有Entity Framework我怎么才能使用Entity Framework …我很困惑请帮忙 artiklBindingSource是自动生成的我只想使用EF作为数据源我现在卡在了不需要的DataSet和一大堆乱七八糟的东西。

冻结datagridview中的顶行和前两列

我有一个datagridview,我正在尝试实现以下目标:1。在垂直滚动时应该冻结顶行。 2.前两列应该在水平滚动时冻结。 我应用了column.Freeze = true并且工作正常,但是当应用row [0] .freeze = true时,它不适用于行冻结。

当padding大于2时,计算datagridview的填充?

该演示程序有一个表格,上面绘有DataGridView 我已经用一些数据填充了DataGridView 这里有一些答案表明可以计算所有列的总宽度并添加两个,然后在不获取滚动条的情况下为DataGridView提供尽可能小的宽度。 我发现在这种情况下,由于某种原因,计算出的宽度太小,滚动条仍然存在。 在我给datagridview提供数据之后,我使用这3行。 fix_dgvw_efficientbutnotworking_wrongpadding(); dgvw代表datagridview的宽度。 该方法使用“BOS”中提到的答案将dataGridView大小调整为行和列的总大小但是,在这种情况下它似乎不起作用。 顺便说一句,有趣的是,如果datagridview只有一行数据,那么BOS的方法可以工作,那么填充就是两行。 但无论如何,我对这种情况感兴趣,其中datagridview有2行数据..并且该方法不起作用,因为填充不是两个。 你可以直观地看到(特别是如果你停在这里并且刚刚接下来的两行),你会看到,datagridview有滚动条。 MessageBox.Show(test_if_horizontal_scrollbars().ToString()); 上面的行中的这个消息框表示True,表示存在水平滚动条。 MessageBox.Show(fix_dgvw_inefficientbutworks().ToString()); 上面的一行运行的方法相当低效,不断增加datagridview的宽度,直到没有更多的滚动条。 它首先使用BOS的方法,它将宽度调整到合适的宽度,但有时仍然有滚动条,就像这里的情况一样,因此该方法将一次增加一个增量的宽度,直到没有更多的水平滚动条。 在这种情况下,我们看到填充必须再增加15次,我们看到消息框显示15.但这似乎是一种非常低效的查找和修复它的方法。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace paddingfind { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs […]

DataGridView:编辑时更改编辑控件大小

在DataGridView中我希望在编辑单元格时根据字符串长度扩展单元格大小。 Excel也是如此。 在DataGridView中 ,进入编辑模式时, DataGridViewTextBoxEditingControl将放置在单元格位置。 我试图改变这个控件的边界/大小,但结果只是我所需大小的短暂闪烁。 它直接覆盖了原始的截断方式。 关于如何使这个工作的任何想法? 谢谢, 蒂莫

WinForms DataGridView – 更新数据库

我知道这是DataGridView的基本function,但由于某种原因,我无法让它工作。 我只希望Windows窗体上的DataGridView在用户单击“保存”按钮时将对其进行的任何更改提交到数据库。 我根据DropDownList中用户选择触发的函数填充DataGridView,如下所示: using (SqlConnection con = new SqlConnection(conString)) { con.Open(); SqlDataAdapter ruleTableDA = new SqlDataAdapter(“SELECT rule.fldFluteType AS [Flute], rule.fldKnife AS [Knife], rule.fldScore AS [Score], rule.fldLowKnife AS [Low Knife], rule.fldMatrixScore AS [Matrix Score], rule.fldMatrix AS [Matrix] FROM dbo.tblRuleTypes rule WHERE rule.fldMachine_ID = ‘1003’”, con); DataSet ruleTableDS = new DataSet(); ruleTableDA.Fill(ruleTableDS); RuleTable.DataSource = ruleTableDS.Tables[0]; } 在我的保存function中,我基本上有以下内容(我已经修剪了一些代码以便达到目的): […]

在DataGridView中对选定的行进行排序

我在Winforms应用程序中有一个DataGridView。 我想在其中选择一组行,并按列(Timestamp)对这些行进行排序… 其余的行应该保持原来的状态。可以使用DGV的sort属性来完成 谢谢

如何在.NET 2.0中创建自定义集合

嗨,我想创建自定义集合,我从CollectionBase类派生我的自定义集合类,如下所示: public class MyCollection : System.Collectio.CollectionBase { MyCollection(){} public void Add(MyClass item) { this.List.Add(item); } } class MyClass { public string name; } 我来问几个问题: 当我在.NET 3.5框架上工作时,这种方法是否正确和新。 我想从我的Web服务(WCF)中公开这个集合。我该怎么做? 我必须实现GetEnumerator吗? 这是否会绑定到DataGridView。