【问题标题】:Water mark for Data Grid View in Windows Form using vb.net使用 vb.net 在 Windows 窗体中的数据网格视图的水印
【发布时间】:2015-11-20 13:39:21
【问题描述】:

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

背景图像没有Data Grid View属性来设置图片然后设置它的不透明度。我寻找第三方来提供我发现telerik提供的水印能力,但这不是免费的。

我需要免费的第三方工具来获取数据网格视图水印,或者自己添加水印而不使用任何工具。

提前感谢

【问题讨论】:

  • 你想只在没有行的时候显示图像吗?
  • 我想在两种情况下都显示图像,无论是否有行,但我已经解决了我的问题,我会添加答案感谢您的支持

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


【解决方案1】:

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

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

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

【讨论】:

  • 我以前也经历过,但对我没有好处。
【解决方案2】:

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

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

或者你可以一直显示它,但是移动它在最后一行下面..

这个代码很简单;但是,当添加了许多行时,嵌套的 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()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    相关资源
    最近更新 更多