datagridview同一列有 按钮 和 文本 交错行显示问题

zhuyuan0506 2010-03-23 10:33:41
如题
在给datagridview绑定数据源的时候,根据sql中某字段的值显示该列的控件类型(按钮或文本),不知如何实现?
望高手们不吝赐教!
...全文
184 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
WTPMCheng 2010-03-23
  • 打赏
  • 举报
回复
从SQL中取出字段的值在进行判断,根据什么类型要什么控件!!!
if(a == "")
{
//添加一个textbox
}
........
JOCLI 2010-03-23
  • 打赏
  • 举报
回复
重绘

以下例子假设要设第一列偶数行显示button,奇数行不显示 :

Rectangle cellBounds = new Rectangle();
string value = string.Empty;
int columnIndex = 0;
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex % 2 == 0&&e.ColumnIndex==0)
{
cellBounds = e.CellBounds;
if (e.Value != null)
value = e.Value.ToString();
columnIndex = e.ColumnIndex;
}
}


private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
if (e.RowIndex % 2 == 0)
{
SolidBrush br = new SolidBrush(Color.White);
SolidBrush brString=new SolidBrush(dataGridView1.ForeColor);
e.Graphics.FillRectangle(br, cellBounds.Location.X - 1, cellBounds.Location.Y - 1, dataGridView1.Columns[columnIndex].Width, dataGridView1.Rows[e.RowIndex].Height);
e.Graphics.DrawString(value, dataGridView1.DefaultCellStyle.Font, brString, cellBounds.Location.X, cellBounds.Location.Y-20);
}
}

zhuyuan0506 2010-03-23
  • 打赏
  • 举报
回复
datagridview中,初使化行事件(确实没找到InitializeRow事件)?
不知高手能否帮忙指导下
criedshy 2010-03-23
  • 打赏
  • 举报
回复
先绑定datagridview,在初使化行事件里(InitializeRow,不知道是不是这个事件,UltraGrid是这个事件)

取出行参数,根据那一列的值来判断列是哪种样式
zhuyuan0506 2010-03-23
  • 打赏
  • 举报
回复
有写过的高手 给个代码看看
或有更好的解决思路
风之影子 2010-03-23
  • 打赏
  • 举报
回复
应该可以实现,动态列太复杂。
zhuyuan0506 2010-03-23
  • 打赏
  • 举报
回复
按钮和文本是在同一列显示的
有无可能用动态添加列方法解决
风之影子 2010-03-23
  • 打赏
  • 举报
回复
最简单的做法,就是把要显示的控件全部都加入DatagirdView,再根据不同的值显示隐藏不同的列。
zhuyuan0506 2010-03-23
  • 打赏
  • 举报
回复
根据某字段的值显示该列的控件类型(按钮或文本),有没更接近题意的解决方法呢

110,555

社区成员

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

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

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