小编Arv*_*wen的帖子

当元素为空时,XMLDocument.Save将返回载体添加到XML

我正在加载一个XML文档,其中包含一些没有innertext的标记.

如果我用一些数据填充innertext,那么它可以根据需要工作(你可以在一行上打开标签,innertext和关闭标签),如下所示......

<root>
  <element>value</element>
</root>
Run Code Online (Sandbox Code Playgroud)

问题出现在没有值的标签上.这些应该以与上面相同的方式显示,除了没有粗糙值之外,如下所示......

<root>
  <element></element>
</root>
Run Code Online (Sandbox Code Playgroud)

但是,当innertext有一个空字符串时,它会添加一个回车和换行符,这不是预期的!最终看起来像以下......

<root>
  <element>
  </element>
</root>
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码,产生上述结果......

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\test.xml");

//Save the xml and then cleanup
xmlDoc.Save(@"C:\test.xml");
Run Code Online (Sandbox Code Playgroud)

.net c# xml

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

显示自定义控件的自定义图标?

在visual studio中,当您创建自定义控件时,您会得到它 默认工具箱图标 丑陋的小紫色齿轮用于控制图标而不是自定义控件 默认工具箱图标.

那么如何更改我的控件图标呢?

c# user-controls custom-controls

12
推荐指数
2
解决办法
8769
查看次数

将内存映射与服务一起使用

我构建了一个应用程序,它也可以作为服务(使用-service)开关运行。当我从命令提示符运行服务时,这完全没有问题(我有一些设置可以让我在不作为真正的服务运行时从控制台调试它)。但是,当我尝试将它作为真正的服务运行,然后使用我的应用程序打开现有的内存映射时,出现错误...

找不到指定的文件。

我如何将它作为服务或在控制台中运行:

[STAThread]
static void Main(string[] args)
{
    //Convert all arguments to lower
    args = Array.ConvertAll(args, e => e.ToLower());

    //Create the container object for the settings to be stored
    Settings.Bag = new SettingsBag();

    //Check if we want to run this as a service
    bool runAsService = args.Contains("-service");

    //Check if debugging
    bool debug = Environment.UserInteractive;

    //Catch all unhandled exceptions as well
    if (!debug || debug)
    {
        Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
    }

    if (runAsService)
    {
        //Create service array
        ServiceBase[] …
Run Code Online (Sandbox Code Playgroud)

c# shared-memory memory-mapped-files memory-mapping

10
推荐指数
1
解决办法
555
查看次数

StatusStrip - 添加一个按钮,右下角没有下拉箭头

我知道有一个ToolStripSplitButton ......

ToolStripSplitButtonWithDropDown

...但是有没有办法使用该按钮对象而没有右侧的下拉箭头.结束只是一个按钮的图像?

ToolStripSplitButtonWithoutDropDown

c# statusstrip

9
推荐指数
2
解决办法
4226
查看次数

将exe从一个项目复制到另一个项目的调试输出目录

我有两个项目,ProjOne.exe和ProjTwo.exe.我想构建ProjOne.exe,它知道它依赖于ProjTwo.exe,因此它会在构建ProjOne.exe时复制ProjTwo.exe.

我还有一个ProjThree.dll,它已经完美地完成了它.但这仅仅是因为Proll引用了dll.

有没有像DLL/OCX那样做的方法?或者这是一些POST构建脚本?:)如果是这样,请举例说明我将使用的脚本.

谢谢!

c# exe visual-studio-2010

7
推荐指数
2
解决办法
3973
查看次数

如何使用LibTiff.Net 2.3库删除tiff标签

我似乎找不到任何有关如何使用LibTiff.Net库删除tiff标签的文档.我喜欢图书馆,但这种方法对我需要做的很重要.有一次,我希望我可以设置一个标签并将其值设置为空.我曾希望这会起作用,但这是消极的.

任何人都知道如何使用LibTiff.Net库删除tiff标签?

c# tags tiff libtiff.net

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

由于MinimumSize重新打开Visual Studio窗体设计器更改布局

所以我创建了一个表单布局并尝试在其上设置MinimumSize,但却发现WinForms非常合适!所以这就是我开始使用MinimumSize属性设置为宽度时的样子...

在此输入图像描述

你可以看到它看起来很棒,没有额外的空格,表单是我想要的大小等等......然后,我尝试关闭表单并将其打开,我有一点奇怪(MinimumSize高度设置为0现在WinForms已经成功了38)但不管它仍然按预期工作..

在此输入图像描述

确定好就的minimumSize,高度奇"38"是奇怪,但不管,让我尝试我者优先的minimumSize,高度设置为420(尺寸相同的形式).

在此输入图像描述

保存,关闭表单设计师并重新打开... WTF?一切都出了差错!我在底部的三个按钮都被拉高,因此具有文本框和TreeView控件我把它上面,以及左侧列表视图高度已经调整.事实上,看着它似乎控件的大小仍然是正确的.已更改的变量是表单大小.它有点从420到442 ???

在此输入图像描述

任何人都知道为什么会这样?我可以做些什么来修复它,或者我想解决它?请记住我有按钮,文本框固定在底部.树视图需要保持固定在顶部,并随着窗口的大小调整而增长.

谢谢!

c# size visual-studio-2010 winforms

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

使用XmlReader如何在开始时重新启动?

这实际上是一个2部分问题......

  1. 我有一个从内存流创建的XmlReader对象.我已经使用了几次.Read()方法,现在我想回到开头并从声明节点开始.我怎样才能做到这一点?

  2. 在创建XmlReader对象时,我创建了一个XmlDocument对象和一个MemoryStream对象.在使用内存流创建XmlReader后,是否需要以某种方式销毁这些对象?或者会破坏它们也影响XmlReader对象?

这就是我创建XmlReader对象的方法

XmlReader xmlReader = null;
XmlDocument doc = new XmlDocument();
doc.Load(m_sXMLPath);

if (doc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
{
    XmlDeclaration dec = null;
    byte[] bytes = null;
    MemoryStream ms = null;

    dec = (XmlDeclaration)doc.FirstChild;
    switch (dec.Encoding.ToLower())
    {
        case "utf-8":
            bytes = Encoding.UTF8.GetBytes(File.ReadAllText(m_sXMLPath));
            break;
        case "utf-16":
            bytes = Encoding.Unicode.GetBytes(File.ReadAllText(m_sXMLPath));
            break;
        default:
            throw new XmlException("");
    }

    if (bytes != null)
    {
        ms = new MemoryStream(bytes);
        xmlReader = XmlReader.Create(ms);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# xml

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

使用CSS将图像大小设置为容器高度的100%

我已经解决了解决方案之后阅读解决方案并尝试了各种各样的事情,但从未让这个工作正常...

我希望图像最终根据浏览器窗口的当前高度动态调整大小.目前使用图像下方的代码是原始高度,最终比浏览器窗口更大,导致出现垂直滚动条.

注意:请记住,我希望使用相同数量的表格和单元格完成此操作.请不要给我一个表解决方案.

<html>
  <head>
    <style>
      body
      {
        text-align: center;
        margin: 0px;
        margin-left: auto;
        margin-right: auto;
      }
      table.one
      {
        border-collapse: collapse;
      }
      table.two
      {
        border-collapse: collapse;
      }
      img
      {
        max-height: 100%;
      }
    </style>
  </head>
  <body>
    <table class="one" cellpadding=0>
      <tr>
        <td>
          <table class="two" cellpadding=0>
            <tr>
              <td>
                <img src="myimage.jpg">
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css html-table

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

强制vbscript以64位而不是32位打开命令提示符

我一直试图让这个脚本全天工作!

以下是关于我的情况的一些事实......

  • 我的"C:\ Windows\System32 \"文件夹中有一个名为"ffmpeg.exe"的程序.
  • 我在"C:\ Windows\SysWOW64 \"文件夹中没有该程序.

目前这是我的剧本......

Option Explicit

Dim oFSO, oShell, sCommand
Dim sFilePath, sTempFilePath

Set oFSO = CreateObject("Scripting.FileSystemObject")

sFilePath = "C:\test\in_video.mkv"
sTempFilePath = "C:\test\out_video.mp4"

sCommand = "%comspec% /k ffmpeg -n -i """ + sFilePath + """ -c:v copy -c:a copy """ + sTempFilePath + """"
WScript.Echo sCommand
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run sCommand, 1, True
Set oShell = Nothing

Set oFSO = Nothing
Run Code Online (Sandbox Code Playgroud)

如果我在命令提示符下手动运行此脚本,那么它似乎工作正常.但是,如果我让另一个应用程序运行它(例如在这种情况下为uTorrent),它会按预期运行脚本,但是当它尝试处理oShell.Run命令时,它会在32位环境中运行它!然后我明白了...... 不存在

如果我尝试打开一个新的命令提示符(没什么特别的)我似乎默认为64位环境,然后我可以输入"ffmpeg",它会按预期显示帮助内容.

因此,由于某种原因,我无法让脚本在64位环境中运行应用程序(特别是CMD).谁知道我怎么能做到这一点?


更新

似乎我的脚本实际上是在32位模式下运行!即使脚本标题栏显示"C:\ Windows\System32\cscript.exe",这是一个64位环境!!

我使用以下脚本来确定它是在32位环境中运行的...

Dim WshShell
Dim WshProcEnv
Dim system_architecture …
Run Code Online (Sandbox Code Playgroud)

vbscript ffmpeg windows-server-2008-r2

3
推荐指数
1
解决办法
1240
查看次数