- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
DataGridView
控件(Windows.Forms、.NET Framework 3.0)中存在一个比 DataGridView 本身大的 DataGridViewCell
时,我遇到了一个相当棘手的问题.当大单元格滚动到 View 中时,它会正常显示,在底部被截断,因为它比 View 大。如果您进一步向下滚动,它最终会“捕捉”到顶部并停留在那里,直到您达到某个阈值。然后,下一行将显示在顶部,“大”行消失。
因此,您永远无法完全看到大单元格的内容。
这是一个示例代码:
using System;
using System.Windows;
namespace LoggerTextBox {
public class TestForm : Form
{
public TestForm()
{
Text = "DataGridView Large Cell Example";
SetBounds(0, 0, 300, 200, BoundsSpecified.Width | BoundsSpecified.Height);
DataGridView dataGridView = new DataGridView();
dataGridView.Dock = DockStyle.Fill;
dataGridView.ScrollBars = ScrollBars.Both;
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders;
Controls.Add(dataGridView);
DataGridViewColumn column = new DataGridViewTextBoxColumn();
column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
column.CellTemplate.Style.WrapMode = DataGridViewTriState.True;
dataGridView.Columns.Add(column);
// normal row
DataGridViewRow row = new DataGridViewRow();
DataGridViewCell cell = (DataGridViewTextBoxCell)column.CellTemplate.Clone();
cell.Value = "Foo";
row.Cells.Add(cell);
dataGridView.Rows.AddRange(row);
// multiline row
row = new DataGridViewRow();
cell = (DataGridViewTextBoxCell)column.CellTemplate.Clone();
cell.Value =
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr," + Environment.NewLine +
"sed diam nonumy eirmod tempor invidunt ut labore et doloreLorem," + Environment.NewLine +
"ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy," + Environment.NewLine +
"eirmod tempor invidunt ut labore et dolore magna aliquyam erat,," + Environment.NewLine +
"sed diam voluptua. At vero eos et accusam et justo duo dolores et," + Environment.NewLine +
"ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est," + Environment.NewLine +
"Lorem ipsum dolor sit amet. magna aliquyam erat, sed diam voluptua.," + Environment.NewLine +
"At vero eos et accusam et justo duo dolores et ea rebum. Stet clita," + Environment.NewLine +
"kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.";
row.Cells.Add(cell);
dataGridView.Rows.AddRange(row);
// normal row
row = new DataGridViewRow();
cell = (DataGridViewTextBoxCell)column.CellTemplate.Clone();
cell.Value = "Bar";
row.Cells.Add(cell);
dataGridView.Rows.AddRange(row);
}
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new TestForm());
}
}
} // namespace
知道如何解决这个问题吗?
最佳答案
我会截断任何超出特定大小的单元格内容(用省略号表示截断)并允许单击该单元格以显示一个弹出窗口,其中的全部内容在可滚动窗口中可见。或者我会在自定义 UserControl 中呈现这些可能较大的单元格的内容,如果文本超过一定长度,该自定义 UserControl 本身包含滚动条。
您遇到的问题是由 DataGridView 以非预期方式使用引起的,因此没有简单的内置方法来处理此问题我并不感到惊讶。
更新:对于查看日志,ReportViewer
可能是更合适的控件。以下是有关使用它的一些链接:
关于C# DataGridView,大单元格 : Content never fully visible, 滚动跳过单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1626879/
我想选择 仅第一个表中的元素,而不是第二个表中的元素。是否有任何 CSS 选择器可以这样做? 澄清一下:我只想选择 里面按照表格,只有当 em 完全包含在 p 中时。即:如果只包含 . 顺便说一下,
如何让我的固定宽度网站在 webkit(iphone 和 android)浏览器上始终显示为“完全放大”? 现在,它在 iPhone 上看起来不错,但在分辨率更高的 Android 手机上“太小/缩小
我正在使用的代码片段:: br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Ge
我有一个 A 形框架组件,它在某个时候创建一个“基础”实体,上面挂着一堆子元素(基本上是带有彩色面的盒子)。完成所有这些子元素(包括网格)后,我想使用 geometry-merger 合并它们的几
我需要一些帮助来完全理解运行这段代码时发生了什么 public class Main extends Thread { private static int x; public sta
我正在阅读HttpCore documentation并遇到了这条线。 public static void consume(HttpEntity entity) throws IOException
在我的 Django 环境“完全加载”后,我需要执行一些相当简单的任务。 更具体地说,我需要做一些事情,比如 Signal.disconnect() 默认情况下由我的第三方库设置的一些 Django
git 的一个好处是“每个人都可以拥有完整的备份”作为 DVCS 相对于 SVN。不太懂。 例如,John 有一个 git 仓库和他的分支 branch_a,Peter 有另一个 git 仓库和 br
以下内容对我来说毫无意义 % git clone $REPO_URL --branch dev wd % cd wd % git fetch origin master:master From git
我有一个现有的 Angular 应用程序,它在 Angular 4 时开始开发,现在它在 Angular 12 上。但是在开发时,strict mode 没有启用。现在,在应用程序稳定并部署到生产环境
我想知道为什么我需要包含 (:gen-class) 来访问从其他 ns 导入的函数而不完全限定它们。 例子: (ns project.core (:gen-class)) (defn foo []
(还有几个关于超时和 maxSpoutPending 的问题) 我在 Storm 文档中看到很多关于消息被完全处理的引用。但是我的 KafkaSpout 如何知道消息何时被完全处理? 希望它知道我的
我正在使用 Gremlin-Python 客户端通过 janusgraph 后端查询 Gremlin 服务器。 运行以下查询: graph = Graph() g = graph.traversal(
我正在尝试使用 reqwest 库获取一个网站。 问题是某些网站将在几毫秒或大约一秒内完全呈现。 (就像html渲染后加载表格元素一样) let client = reqwest::Client::b
如果hashCode()计算使用不可变字段并且equals()使用所有字段,那么会是这样吗?当类用作哈希键时有问题吗?例如 import java.util.Objects; public class
我认为这只是一个一般的 C++ 问题: 我正在尝试使用 gnu c++ 编译器在 Linux Fedora 上编译本地版本的 ffmpeg。我的源代码位于以下一堆文件夹中: ~//Downloads/
我收到了这则消息 Fully shadowed APK PROBLEM This APK will not be served to any users because it is completel
我的文档通常包含这种形式的“完全受限”框架: \begin{frame} Lorem ipsum dolor. \end{frame} 由于第一行末尾的 ,像这样的帧 没有出现在我用 pdfl
我正在 SBCL 中尝试这个来翻转列表中的点对: (mapcar (lambda (x) (let ((num (random 2))) (if (
有没有办法对 以但可能不完全包含给定字符串的数据字段进行 MySQL 查询? 例如,如果我有以下数据项列表: my_table 1. example.com 2. example.com/subpag
我是一名优秀的程序员,十分优秀!