我对方法 DataGridViewColumn.Frozen
有疑问在 Linux 上使用单声道,用谷歌搜索这个问题对我没有帮助。
我需要卡住 DataGridView
的几列在 C# mono 应用程序中,在 Windows 上它按预期工作,但任何时候我将我的二进制文件复制到 Linux PC,方法 Frozen
根本不起作用。
我试过了Columns[index].Frozen
和 Columns[name].Frozen
在填充 DataGridView
之前和之后.
这是我的单声道版本的错误,还是我需要一些额外的代码才能使其正常工作? 我在 SUSE Linux 上使用 mono 2.10(不幸的是,我无法升级它)。
更新
制作了一个简单的应用程序并在 mono 4.6.2 上进行了测试:与 2.10 相同,方法 Frozen
不起作用。
测试应用代码:
DataTable _tbl = new DataTable();
_tbl.Columns.Add("Name", typeof(String));
_tbl.Columns.Add("val1", typeof(String));
_tbl.Columns.Add("val2", typeof(String));
_tbl.Rows.Add("1", "val11", "val22");
_tbl.Rows.Add("2", "val11", "val22");
dgvVars.DataSource = _tbl;
dgvVars.Columns["Name"].Frozen = true;
dgvVars.Columns[0].Frozen = true;
最佳答案
Windows 窗体是在 System.Drawing 顶部的 Mono 中实现的。因此,由于没有 P/Invoke,遵循代码或多或少容易一些。
在撰写本文时(2018 年 2 月),我没有在 DataGridView.cs 文件中找到对属性 Frozen
的提及。
此外,我还找到了 DataGridViewTest.cs in searchcode.com .如果您对 Frozen
进行文本搜索,您会发现:
// /* NIE for the moment... */ Assert.AreEqual (true, cell.Frozen, "#cell.Frozen");
我认为这意味着 Frozen
没有实现。由于 Windows 窗体已被 Xamarin 放弃,我不希望很快修复它。
恐怕您必须自己实现。
希望这(以某种方式)有所帮助。
关于c# - DataGridViewColumn.Frozen 单声道 2.10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48741094/