一个关于DataGrid的问题!!!! 请高手来指点迷津

syinter 2002-12-03 10:17:47
DataGrid显示数据如何不让它处于编辑状态??

因为:
即使把ReadOnly设置为false,显示数据的时候DataGrid,如果把MOUSE在CELL上点击一下,DataGrid不是把当前行设置为整行选择,而是让那个选择的CELL处于"编辑状态"(虽然无法编辑,但有光标在闪)

那么:
除了在DataGrid的第一列那里可以选择整行的话,还有什么办法??
我尝试在dataGrid1_KeyUp事件中使用DataGrid.Select(int row)方法来强制选择当前行,但做不到啊!!!
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunwindone 2002-12-04
  • 打赏
  • 举报
回复
//这个应该可以

private void DataGrid_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
System.Drawing.Point pt = new Point(e.X, e.Y);
DataGrid.HitTestInfo hti = DataGrid.HitTest(pt);
if(hti.Type == DataGrid.HitTestType.Cell)
{
DataGrid.CurrentCell = new DataGridCell(hti.Row, hti.Column);
DataGrid.Select(hti.Row);
}
}
dy_2000_abc 2002-12-03
  • 打赏
  • 举报
回复
看看这个能不能实现你要的效果
public class myColumn:DataGridTextBoxColumn
{
public myColumn()
{
this.TextBox.VisibleChanged+=new EventHandler(abc);
}
private void abc(object sender,EventArgs e)
{
this.TextBox.Visible=false;
}
}
使用这个类:
SqlDataAdapter daa=new SqlDataAdapter("select * from Customers",sqlConnection1);\\连接sql server数据库Northwind
DataSet ds=new DataSet();
daa.Fill(ds,"customers");
myColumn c=new myColumn();
c.MappingName="CompanyName";
c.Width=100;
myColumn c1=new myColumn();
c1.MappingName="ContactName";
c1.Width=100;
DataGridTableStyle dt=new DataGridTableStyle();
dt.GridColumnStyles.Add(c);
dt.GridColumnStyles.Add(c1);
dt.MappingName="customers";
dataGrid1.TableStyles.Add(dt);
dataGrid1.DataSource=ds;
dataGrid1.DataMember="customers";
syinter 2002-12-03
  • 打赏
  • 举报
回复
不好意思,上面的"ReadOnly设置为false"应该是"ReadOnly设置为ture"

110,537

社区成员

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

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

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