我一直在网上搜索制作带有固定(冻结)列和标题的表的方法.好像我终于找到了解决方案并根据我的需要进行了修改.
有原来的小提琴是在这里.
这是我修改过的解决方案.我在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)我使用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文件中得到的:
我想得到的内容:请参阅对象浏览器和智能感知中的代码示例.
我有一个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值创建?
我正在尝试使用DWM为我的表单创建自定义窗口框架.该平台是C#WinForms,Pinvoking DWM.
在关于使用DWM制作自定义窗口框架的MSDN文章之后,主要步骤如下:
我以下一种方式处理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)
当wParam为TRUE时,只返回0而不处理NCCALCSIZE_PARAMS矩形将导致客户区调整大小到窗口大小,包括窗口框架.这将从窗口中删除窗口框架和标题项目,仅显示客户区域.
一切都很好,除了一个问题,对我有用.当我最大化/恢复窗口时,它在恢复时总是会增长一点.我想,问题是这样的:
所以,每当我最大化/恢复它时,这个窗口就会增长一点.我需要删除非客户区域以使用DWM绘制自定义表单框架.我不能简单地将窗口边框样式设置为无,因为DWM不会绘制窗口标题和边框.
请帮助解决问题,并愉快地拥有自定义窗口框架.
我有Label
与TextBox
Windows窗体,C#,.NET。
我可以看到一个奇怪的行为:我将相同的 Font 设置为Label
and TextBox
,并且相同的单词在那里看起来不同:
字体是 Tahoma,10.25pt。如您所见,顶部是一个Label
,与TextBox
. 为什么会发生这种情况?我可以TextBox
用这种字体让我的和 Label 看起来一样吗?
我有一个引用双面装配的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)
我可以手动删除从引用到双面装配的所有内容,但是当我更改某些属性时,它会返回到复杂版本,我不确定这是否安全.
那么如何正常更新参考?