我有一个DataGridView
Windows窗体应用程序的控件(用C#编写).
我需要的是:当用户选择DataGridViewRow,然后单击"删除"按钮时,应该删除该行,接下来,需要使用表适配器更新数据库.
这是我到目前为止:
private void btnDelete_Click(object sender, EventArgs e)
{
if (this.dataGridView1.SelectedRows.Count > 0)
{
dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index);
}
}
Run Code Online (Sandbox Code Playgroud)
此外,这只删除一行.我希望用户可以选择多行.
对于C#窗体,有一个名为DataGridView的工具.
如果我们使用它来显示数据,它会显示一条额外的行.
如果我们有3行数据,它会显示4行.第四行是一个空行.
我想知道如何禁用它..或隐藏它?
我需要使datagridview只接受keypress事件中特定列的数值.有没有最好的办法呢?
如何让" DataGridViewTextBoxColumn
" DataGridView
支持Multiline属性?
如何在数据网格视图中禁用单元格突出显示,即使单击单元格也不应突出显示.
请问任何想法
是否可以在行标题中显示行号DataGridView
?
我正在尝试使用此代码,但它不起作用:
private void setRowNumber(DataGridView dgv)
{
foreach (DataGridViewRow row in dgv.Rows)
{
row.HeaderCell.Value = row.Index + 1;
}
}
Run Code Online (Sandbox Code Playgroud)
我必须设置一些DataGridView
房产吗?
我有一个这样的课:
private class MyClass {
[DisplayName("Foo/Bar")]
public string FooBar { get; private set; }
public string Baz { get; private set; }
public bool Enabled;
}
Run Code Online (Sandbox Code Playgroud)
当我创建一个List<MyClass>
并将其分配给DataSource
a时DataGridView
,网格显示两列,"Foo/Bar"和"Baz".这就是我想要发生的事情.
它目前有效,因为Enabled是一个字段,而不是属性 - DataGridView只会获取属性.但是,这是一个肮脏的黑客.
我也想使Enabled成为一个属性,但仍然将它隐藏在DataGridView上.
我知道我可以在绑定后手动删除列..但这并不理想.
是否有类似于DisplayName的属性,我可以用?标记属性?有点像[Visible(false)]
?
如何在DataGridView中的任何指定单元格上设置焦点?我期待像Focus这样的简单方法(rowindex,columnindex),但这并不容易.
我的数据网格视图中有10k行和15列.我想将此数据导出到excel表单o按钮.我已经尝试过以下代码.
private void btExport_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;
for(int i=1;i<dataGridView1.Columns.Count+1;i++)
{
worksheet.Cells[1, i] = dataGridView1.Columns[i-1].HeaderText;
}
for (int i=0; i < dataGridView1.Rows.Count-1 ; i++)
{
for(int j=0;j<dataGridView1.Columns.Count;j++)
{
if (dataGridView1.Rows[i].Cells[j].Value != null)
{
worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
else
{
worksheet.Cells[i + 2, j + 1] = "";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这对我有用, …
我需要从da数据绑定DataGridView获取当前选定的对象.
我不需要当前所选单元格的对象,而是整个行所基于的对象,在这种情况下,BusinessObject属性将构成网格的列.
我可以查看DataSource,但它本身只是一个对象,可以是BindingSource或IBindingList或类似的东西 - 所以不容易标准化的方式来获取想要的对象.
在此之后需要检查businessObject以获取名为IsChanged的属性,并在绑定源选择下一个项目之前要求用户保存或放弃更改.因此,我必须找出DataGridView的RowValidating-Event中的当前对象,因为BindingSource不提供在更改发生之前停止更改的事件.请参阅此处了解众所周知的问题
谢谢阅读 ;-)
datagridview ×10
c# ×9
winforms ×5
.net ×3
attributes ×1
copy ×1
keypress ×1
properties ×1
tableadapter ×1
vb.net ×1