Questions tagged «datagridview»

DataGridView是Windows窗体控件,用于显示和编辑表格数据。




7
右键单击datagridview的上下文菜单
我在.NET winform应用程序中有一个datagridview。我想右键单击一行,然后弹出一个菜单。然后我想选择诸如复制,验证等内容 我如何使A)弹出菜单B)找到右键单击的行。我知道我可以使用selectedIndex,但是我应该能够右键单击而不更改选择的内容?现在,我可以使用选择的索引,但是如果有一种方法可以在不更改选择的内容的情况下获取数据,那将很有用。

24
如何自动调整DataGridView控件中的列的大小并如何允许用户调整同一网格上的列的大小?
我正在Windows窗体(C#2.0而不是WPF)上填充DataGridView控件。 我的目标是显示一个网格,该网格将单元格整齐地填充所有可用宽度-即,在右下方没有未使用的区域(深灰色),并根据其包含的数据适当调整每一列的大小,但还允许用户调整任何列的大小根据他们的喜好。 我试图通过将每列的AutoSizeMode设置为DataGridViewAutoSizeColumnMode.AllCells来实现此目的,但我将其中之一设置为DataGridViewAutoSizeColumnMode.Fill才能确保网格的整个区域被数据整齐地填充。(我不介意,当用户尝试调整此列的大小时,它会弹回以确保始终使用水平空间的大小。) 但是,正如我提到的,加载后,我希望允许用户调整列的大小以适合自己的需求-在为每个列设置这些AutoSizeMode值时,用户似乎无法再调整这些列的大小。 我试过不设置所有允许调整大小的列的AutoSizeMode,但不会根据单元格包含的数据设置初始大小。加载数据后将网格的AutoSizeMode更改回“ Not Set”时,会发生相同的结果。 是否缺少我可以自动设置默认列宽和用户调整大小的设置,还是在填充DataGridView控件时必须使用另一种技术?


5
在列中单击按钮,获取它来自Click事件处理程序的行
我已经将WPF Datagrid的itemsource设置为从DAL返回的对象列表。我还添加了一个额外的列,其中包含一个按钮,下面是xaml。 <toolkit:DataGridTemplateColumn MinWidth="100" Header="View"> <toolkit:DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Click="Button_Click">View Details</Button> </DataTemplate> </toolkit:DataGridTemplateColumn.CellTemplate> </toolkit:DataGridTemplateColumn> 这很好。但是,在Button_Click方法上,有什么方法可以让我在按钮所在的数据网格上获取行?更具体地说,我对象的属性之一是“ Id”,我希望能够将其传递到事件处理程序中另一种形式的构造函数中。 private void Button_Click(object sender, RoutedEventArgs e) { //I need to know which row this button is on so I can retrieve the "id" } 也许我在xaml中需要一些额外的东西,或者我正在以一种回旋的方式来解决这个问题?任何帮助/建议表示赞赏。


7
在不更改数据源的情况下过滤DataGridView
我正在C#Visual Studio 2010中开发用户控件-一种用于过滤datagridview的“快速查找”文本框。它应该适用于3种类型的datagridview数据源:DataTable,DataBinding和DataSet。我的问题是从DataSetView上显示的DataSet对象过滤DataTable。 可能有3种情况(带有DataGridView和TextBox的标准WinForm应用程序示例)-前2种工作正常,第3种存在问题: 1. datagridview.DataSource = dataTable:它可以正常工作, 因此我可以通过设置以下内容进行过滤:dataTable.DefaultView.RowFilter =“ country LIKE'%s%'”; DataTable dt = new DataTable(); private void Form1_Load(object sender, EventArgs e) { dt.Columns.Add("id", typeof(int)); dt.Columns.Add("country", typeof(string)); dt.Rows.Add(new object[] { 1, "Belgium" }); dt.Rows.Add(new object[] { 2, "France" }); dt.Rows.Add(new object[] { 3, "Germany" }); dt.Rows.Add(new object[] { 4, …


5
将List <T>绑定到WinForm中的DataGridView
我有一堂课 class Person{ public string Name {get; set;} public string Surname {get; set;} } 然后List&lt;Person&gt;向其中添加一些项目。该清单已绑定到我的DataGridView。 List&lt;Person&gt; persons = new List&lt;Person&gt;(); persons.Add(new Person(){Name="Joe", Surname="Black"}); persons.Add(new Person(){Name="Misha", Surname="Kozlov"}); myGrid.DataSource = persons; 没有问题。myGrid显示两行,但是当我向persons列表中添加新项目时,myGrid不会显示新的更新列表。它仅显示我之前添加的两行。 那是什么问题呢? 每次重新绑定效果很好。但是当我将a绑定DataTable到网格时,每次进行一些更改时,DataTable都不需要ReBind myGrid。 如何解决问题而不每次都重新绑定?

2
List <T> vs BindingList <T>优点/缺点
有人可以描述我的项目两者之间的区别。 目前,我有一个List&lt;MyClass&gt;,并将BindingSource设置为那个,并将DataGridView设置为BindingSource。 我已经实现了,IEditableObject所以当调用CancelEdit时,我将对象恢复为原来的状态Memberwise.Clone() 将我的列表更改为BindingList可以解决任何问题吗?使用BindingList有什么优点?

16
如何检测DataGridView CheckBox事件更改?
我有一个winforms应用程序,并希望在DataGridView选中/取消选中控件中嵌入的复选框时触发一些代码。我尝试过的每件事 CheckBox单击时立即触发,但在其检查状态更改之前触发,或 仅在CheckBox失去焦点时触发 我似乎找不到在检查状态更改后立即触发的事件。 编辑: 我想要实现的是,当一个CheckBox中的a的检查状态DataGridView发生变化时,另外两个中的数据DataGridView发生变化。但是我使用过的所有事件,其他网格中的数据仅CheckBox在第一个网格之后DataGridView失去焦点。

8
如何将List <string>绑定到DataGridView控件?
我有一个简单的方法List&lt;string&gt;,希望将其显示在DataGridView列中。 如果列表包含更复杂的对象,则只需将列表建立为其DataSource属性的值即可。 但是这样做时: myDataGridView.DataSource = myStringList; 我看到一列,Length然后显示字符串的长度。 如何在列中显示列表中的实际字符串值?

10
DataGridView自动调整和填充
我的专栏中有3列DataGridView。我想做的是让前2列自动适合内容的宽度,并让第3列填充剩余的空间。 是否可以在WinForms中进行?如果可以的话,我正在从EF DataContext加载数据。我提供了一张有关当前外观的图片。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.