使用vb.net在Windows窗体中的数据网格视图的水印

时间:2015-11-20 13:39:22

标签: c# vb.net datagridview windows-forms-designer watermark

Water mark for Data Grid View

我想在数据网格视图中添加图像作为水印,如附图所示。

背景图像没有数据网格视图属性来设置图片,然后设置其不透明度。我找了第三方给我的水印能力,我发现telerik正在提供,但这不是免费的。

我需要免费的第三方工具,用于数据网格视图水印或使用任何工具自行添加水印的方法。

提前致谢

2 个答案:

答案 0 :(得分:0)

试试此博客 - http://blogs.msdn.com/b/winformsue/archive/2008/01/02/datagridview-watermark-cell.aspx

如果您只想将空单元格中的水印作为DataGridView控件中的水印,那么您可以在绘制单元格时绘制内容,上面列出的文章只是说明了如何为DataGridView自定义水印列和单元格。

http://www.vb-tips.com/TextAndImageColumn.aspx

答案 1 :(得分:0)

如果你想用图像覆盖单元格,可读性会受到很大影响。

但您可以在嵌套Image中添加Panel,并在 隐藏,并在添加第一行或删除最后一行时显示它。

你总是可以在最后一行显示它,但移动 ..

这个代码很简单;然而,当添加了许多行时,嵌套的Panel将移出DataGridView。此示例假设所有行具有相同的高度。

设置嵌套:

panel1.Parent = dataGridView1;
panel1.Location = new Point(1, dataGridView1.ColumnHeadersHeight + 1);

必要时移动面板:

void panelMove()
{
    int rh = dataGridView1.RowCount == 0 ? 0 : dataGridView1.Rows[0].Height;
    panel1.Location = new Point(1,
            dataGridView1.ColumnHeadersHeight + 1 + dataGridView1.RowCount * rh);
}

例如:

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    panelMove()
}

private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
    panelMove()
}