小编Art*_*kyi的帖子

带有固定(冻结)列和标题的HTML表

我一直在网上搜索制作带有固定(冻结)列和标题的表的方法.好像我终于找到了解决方案并根据我的需要进行了修改.

有原来的小提琴是在这里.

是我修改过的解决方案.我在Chrome(版本:55.0.2883.87 m)和Firefox(版本:51.0.1)中测试了它.

问题是它在IE中不完全有效(版本:11.0.9600.18427).在水平滚动期间,标题的冻结部分也会滚动.有人可以帮助我让它在IE中工作吗?还有一个问题:这种方法可以安全使用吗?我的意思是如果它使用一些未指定的行为,那么一些未来的浏览器甚至一些现代浏览器可能以错误的方式显示我的表,并且最好使用具有几个不同表的安全解决方案并同步滚动位置和行高度. UPD:还有一个问题:如何在移动设备上保持稳定?

以下是一些演示该方法的代码:

$(document).ready(function() {
  $('tbody').scroll(function(e) { //detect a scroll event on the tbody
  	/*
    Setting the thead left value to the negative valule of tbody.scrollLeft will make it track the movement
    of the tbody element. Setting an elements left value to that of the tbody.scrollLeft left makes it maintain 			it's relative position at the left of the table.    
    */
    $('thead').css("left", -$("tbody").scrollLeft()); //fix the thead relative to the body scrolling
    $('thead th:nth-child(1)').css("left", …
Run Code Online (Sandbox Code Playgroud)

html javascript css

30
推荐指数
3
解决办法
7088
查看次数

<example> </ example> XML注释标记:如何查看?

我使用Microsoft Visual Studio 2012.当我将代码示例放入C#classes/methods的XML注释中时,我想知道:引用我的程序集的用户将如何看到该代码示例?

我试图引用自己的程序集,我找到的唯一方法是:查看assembly.xml文件.我可以解决Visual Studio或其他任何东西来查看这些代码示例吗?

以下是我对评论的评价:

/// <summary>
/// This is my method example
/// </summary>
/// <example>
/// <code>
/// // Here is my code example. Call my method like this:
/// const int a = 10;
/// MethodExample(a);
/// </code>
/// </example>
public static void MethodExample(int parameter)
{
}
Run Code Online (Sandbox Code Playgroud)

这是我在intellisense中得到的:

在此输入图像描述

这是我在对象浏览器中得到的:

在此输入图像描述

这是我在assembly.xml文件中得到的:

在此输入图像描述

我想得到的内容:请参阅对象浏览器和智能感知中的代码示例.

.net c# intellisense objectbrowser visual-studio-2012

13
推荐指数
1
解决办法
2552
查看次数

TextRenderer:如何测量文本,就好像它在具有不同Dpi的计算机上一样?

我有一个C#WinForms应用程序,它由服务器端和客户端组成.我用TextRenderer.MeasureText(string text, Font font)方法来测量文本.

在某些时候,我需要在服务器端测量文本,就像它在客户端上一样.我将Graphics.DpiX和Graphics.DpiY值从客户端发送到服务器.根据这些值,我如何在服务器端测量文本?关键是客户端和服务器Dpi可能不同.

我想,我可以Graphics用某种方式从Dpi值创建对象,并使用TextRenderer.MeasureText(IDeviceContext dc, string text, Font font)重载来测量我的文本.但是如何Graphics从DpiX和DpiY值创建?

c# text dpi winforms measure

7
推荐指数
1
解决办法
742
查看次数

使用DWM的自定义窗口框架:如何正确处理WM_NCCALCSIZE

我正在尝试使用DWM为我的表单创建自定义窗口框架.该平台是C#WinForms,Pinvoking DWM.

关于使用DWM制作自定义窗口框架MSDN文章之后,主要步骤如下:

  1. 删除标准帧(非客户区),返回0以回答WM_NCCALCSIZE消息
  2. 使用DwmExtendFrameIntoClientArea函数将框架扩展到客户区

我以下一种方式处理WM_NCCALCSIZE消息:

protected override void WndProc(ref Message m)
{
   switch (m.Msg)
   {
       case WM_NCCALCSIZE:
            if (isDwmWindowFramePaintEnabled() && m.WParam != IntPtr.Zero)
            {
                m.Result = IntPtr.Zero;
            }
            else
            {
                base.WndProc(ref m);
            }
            return;
   }
}
Run Code Online (Sandbox Code Playgroud)

根据有关WM_NCCALCSIZE的MSDN文档,

当wParam为TRUE时,只返回0而不处理NCCALCSIZE_PARAMS矩形将导致客户区调整大小到窗口大小,包括窗口框架.这将从窗口中删除窗口框架和标题项目,仅显示客户区域.

一切都很好,除了一个问题,对我有用.当我最大化/恢复窗口时,它在恢复时总是会增长一点.我想,问题是这样的:

  1. 当窗口恢复时,它仅包含客户区
  2. Windows尝试向窗口提供一些非客户区域
  3. 在WM_NCCALCSIZE中,客户区域增长到包含非客户区域

所以,每当我最大化/恢复它时,这个窗口就会增长一点.我需要删除非客户区域以使用DWM绘制自定义表单框架.我不能简单地将窗口边框样式设置为无,因为DWM不会绘制窗口标题和边框.

请帮助解决问题,并愉快地拥有自定义窗口框架.

c# dwm winforms-interop

5
推荐指数
1
解决办法
4201
查看次数

标签和文本框:相同的字体看起来不同

我有LabelTextBoxWindows窗体,C#,.NET。

我可以看到一个奇怪的行为:我将相同的 Font 设置为Labeland TextBox,并且相同的单词在那里看起来不同:

单词“_DATEU”在标签中看起来几乎像粗体

字体是 Tahoma,10.25pt。如您所见,顶部是一个Label,与TextBox. 为什么会发生这种情况?我可以TextBox用这种字体让我的和 Label 看起来一样吗?

.net c# fonts winforms

5
推荐指数
1
解决办法
1085
查看次数

C#项目:如何更新引用的程序集版本

我有一个引用双面装配的C#项目.当我尝试更新双面程序集时,即使我卸载/重新加载项目,Version标记在*.csproj文件中保持不变:

<Reference Include="<myAssembly>, Version=<oldVersion>, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath><myHintPath></HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

所以我的项目试图引用旧版本的程序集,这会导致异常.手动更改引用中的所有版本是非常痛苦的,特别是如果有很多引用的话.

我试图改变一些引用属性,比如SpecificVersion,to True和back False,以及引用刷新:

<Reference Include="<myAssembly>, Version=<newVersion>, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath><myHintPath></HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

如果我更新程序集,任何想法,如何自动更新引用?请注意,当我引用任何系统程序集时System.Configuration.Install,引用非常简单:

<Reference Include="System.Configuration.Install" />
Run Code Online (Sandbox Code Playgroud)

我可以手动删除从引用到双面装配的所有内容,但是当我更改某些属性时,它会返回到复杂版本,我不确定这是否安全.

那么如何正常更新参考?

.net c# .net-assembly visual-studio-2012

5
推荐指数
1
解决办法
1万
查看次数