【问题标题】:DataGridViewColumn.Frozen with mono 2.10DataGridViewColumn.Frozen with mono 2.10
【发布时间】:2018-02-12 07:06:10
【问题描述】:

我在 Linux 上使用 mono 的方法 DataGridViewColumn.Frozen 有问题,谷歌搜索这个问题对我没有帮助。

我需要在 C# mono 应用程序中冻结几列 DataGridView,并且在 Windows 上它按预期工作,但是任何时候我将我的二进制文件复制到 Linux PC,方法 Frozen 根本不起作用.

我在填写DataGridView 之前和之后都尝试过Columns[index].FrozenColumns[name].Frozen

这是我的单声道版本的错误,还是我需要一些额外的代码才能使它工作? 我在 SUSE Linux 上使用 mono 2.10(很遗憾,我无法升级它)。

更新

制作了一个简单的应用程序并在单声道 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;

【问题讨论】:

    标签: c# mono


    【解决方案1】:

    Windows 窗体是在 System.Drawing 之上的 Mono 中实现的。因此,由于没有 P/Invokes,因此或多或少容易遵循代码。

    在撰写本文时(2018 年 2 月),我还没有在 DataGridView.cs 文件中找到对属性 Frozen 的提及。

    另外,我找到了DataGridViewTest.cs in searchcode.com。如果您对Frozen 进行文本搜索,您会发现:

    // /* NIE for the moment... */ Assert.AreEqual (true, cell.Frozen, "#cell.Frozen");
    

    我认为这意味着Frozen 没有实现。由于 Xamarin 已放弃 Windows 窗体,因此我不希望很快修复此问题。

    恐怕你必须自己实现它。

    希望这(以某种方式)有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多