问一个很简单的问题.

拿棵草 2004-11-16 12:34:13
有一个DATAGRID,我选中了一个单元格,请问,我怎么获得这个单元格所对应的列的名字呢?
...全文
166 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanbinghai 2004-12-10
  • 打赏
  • 举报
回复
private void button3_Click(object sender, System.EventArgs e)
{
//当前选中的行号
int iRow = this.dataGrid1.CurrentCell.RowNumber;
//当前选中的列号
int iCol = this.dataGrid1.CurrentCell.ColumnNumber;
DataGridTableStyle ts = new DataGridTableStyle(true);
ts.MappingName = this.dataGrid1.DataMember;
this.dataGrid1.TableStyles.Clear();
this.dataGrid1.TableStyles.Add(ts);
MessageBox.Show(ts.GridColumnStyles[iCol].HeaderText);
}
cdo 2004-12-10
  • 打赏
  • 举报
回复
直接用datagrid好像没有这样的属性,我用到了绑定到datagrid的dataset。代码如下:

private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
int i = dataGrid1.CurrentCell.ColumnNumber;
string str = AuthorData.Tables[0].Columns[i].ColumnName;
textBox1.Text = str;
}
拿棵草 2004-12-10
  • 打赏
  • 举报
回复
上面回答的人真有意思.我问的是WIN FORM的,回答我的全是WEB FORM的.

难道说,现在WIN FORM就真的干不过WEB FORM了么?

WIN FORM的哥儿门们,挣点气.把WEB FORM搞垮.
mobydick 2004-11-17
  • 打赏
  • 举报
回复
DataGrid.Item 属性请参见
DataGrid 类 | DataGrid 成员 | System.Windows.Forms 命名空间
语言
C#

C++

JScript

Visual Basic

全部显示
获取或设置指定单元格的值。

[C#] 在 C# 中,该属性为 DataGrid 类的索引器。

重载列表
获取或设置指定的 DataGridCell 的值。

[Visual Basic] Overloads Public Default Property Item(DataGridCell) As Object
[C#] public object this[DataGridCell] {get; set;}
[C++] public: __property Object* get_Item(DataGridCell);
public: __property void set_Item(DataGridCell, Object*);
[JScript] DataGrid.Item (DataGridCell)
获取或设置位于指定行和列的单元格的值。

[Visual Basic] Overloads Public Default Property Item(Integer, Integer) As Object
[C#] public object this[int, int] {get; set;}
[C++] public: __property Object* get_Item(int, int);
public: __property void set_Item(int, int, Object*);
[JScript] DataGrid.Item (int, int)
示例
[Visual Basic, C#] 下面的示例输出位于指定行和索引处的单元格所包含的值。

[Visual Basic, C#] 注意 此示例显示如何使用 Item 属性(DataGrid 索引器)的一个重载版本。有关其他可用示例,请参阅单独的重载主题。
[Visual Basic]
Private Sub PrintCells(ByVal myGrid As DataGrid)
Dim iRow As Integer
Dim iCol As Integer
Dim myTable As DataTable
' Assumes the DataGrid is bound to a DataTable.
myTable = CType(DataGrid1.DataSource, DataTable)
For iRow = 0 To myTable.Rows.Count - 1
For iCol = 0 To myTable.Columns.Count - 1
Console.WriteLine(myGrid(iRow, iCol))
Next iCol
Next iRow
End Sub

[C#]
private void PrintCellValues(DataGrid myGrid){
int iRow;
int iCol;
DataTable myTable;
// Assumes the DataGrid is bound to a DataTable.
myTable = (DataTable) dataGrid1.DataSource;
for(iRow = 0;iRow < myTable.Rows.Count ;iRow++) {
for(iCol = 0;iCol < myTable.Columns.Count ;iCol++) {
Console.WriteLine(myGrid[iRow, iCol]);
}
}
}
---------------------------------------------------------------------
MSDN上复制过来的
alwaysinsist 2004-11-16
  • 打赏
  • 举报
回复
E就是事件参数,上面的方法是对的哟。
不如说:
void Page_Load(Object o,EventArgs E)

这里的e就是事件参数。
拿棵草 2004-11-16
  • 打赏
  • 举报
回复
你说的E是什么事件里的?
sinkinka 2004-11-16
  • 打赏
  • 举报
回复
popsky 2004-11-16
  • 打赏
  • 举报
回复
列有名字的属性么?应该只有HEADER的属性吧,那好象是e.Item.Cells[i].HeaderText
拿棵草 2004-11-16
  • 打赏
  • 举报
回复
能说的清楚一点么?
skyeenet 2004-11-16
  • 打赏
  • 举报
回复
从Cell 属性中获得
lengyue110 2004-11-16
  • 打赏
  • 举报
回复
VB语法:DataGrid1.DataSource.columns(DataGrid1.CurrentCell.ColumnNumber).columnname
DataGrid1是你的DataGrid的name
拿棵草 2004-11-16
  • 打赏
  • 举报
回复
DataGrid没有Item这个属性啊!
mobydick 2004-11-16
  • 打赏
  • 举报
回复
应该进行强制转换
((DataGrid)sender).Item.Cells[i].HeaderText;
拿棵草 2004-11-16
  • 打赏
  • 举报
回复
我就是问他那里的E是什么事件里的参数.我怎么打了e后,不出来Item这个属性呢?
我是在CurrentCellChanged事件里面试的这个e参数.

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧