我正在安装一个100%托管代码的.NET(C#)应用程序.安装程序(InnoSetup)总是希望将应用程序安装到Vista x64中的"Program Files(x86)"文件夹中,我假设这是因为安装程序本身只有32位.(如果我错了请纠正我)以下是我的问题:
谢谢!
我有一串这样的测试:
<customtag>hey</customtag>
Run Code Online (Sandbox Code Playgroud)
我想使用RegEx修改"customtag"标签之间的文本,使其看起来像这样:
<customtag>hey, this is changed!</customtag>
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用MatchEvaluator来修改文本,但我不确定要使用正确的RegEx语法.任何帮助将非常感激.
我有一个文本文件,其中包含当前以GB2312(简体中文)编码的本地化语言字符串,但我的所有其他语言文件都是UTF-8.我发现使用这个文件非常困难,因为我的文本编辑器都不能正常使用它并继续破坏它.有没有工具可以将其转换为UTF-8,这样做有什么缺点吗?将它保留为GB2312并使用不同的编辑器(如果是这样,你能推荐一个)会更好吗?
更新:我正在使用Windows XP(英文安装).
更新#2:我尝试使用Notepad ++和Notepad2编辑GB2312文件,但两者都无法读取文件并破坏它们.
如果我使用OnPaintBackground中提供的Graphics对象使用TextRenderer.DrawText(),我的文本看起来很完美.如果我创建自己的Bitmap并使用从我的Bitmap获得的Graphics对象,我的文本看起来很糟糕.看起来它使用黑色对文本进行抗锯齿处理,而不是位图的背景颜色.如果我使用Graphics.DrawString(),我可以避免这个问题,但这种方法有可怕的字距调整问题.我该怎么办?如何使用Bitmap的内容正确地将TextRenderer.DrawText()转换为反别名?
看起来很糟糕:
Bitmap bmp = new Bitmap(100, 100, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(g, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}
Run Code Online (Sandbox Code Playgroud)
看起来不错,但我想将其渲染到位图上,而不是渲染到控件的表面上:
protected override void OnPaintBackground(PaintEventArgs e)
{
e.Graphics.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(e.Graphics, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}
Run Code Online (Sandbox Code Playgroud)
有什么不同?
我有一行代码如下:
if (obj is byte || obj is int || obj is long || obj is decimal || obj is double || obj is float)
Run Code Online (Sandbox Code Playgroud)
是否有可能写出比这更优雅的东西?就像是:
if (obj is byte, int, long)
Run Code Online (Sandbox Code Playgroud)
我知道我的例子是不可能的,但有没有办法让这个看起来"更干净"?
我通过Web表单(UTF-8)接受用户输入,将其保存到MySQL DB(使用UTF-8字符集)并稍后生成文本文件(编码为UTF-8).我想知道是否有任何机会使用UTF-8而不是像UCS-2这样的文本损坏?在这种情况下,UTF-8是否足够好?
我试图从外部应用程序获取Delphi应用程序的窗口句柄.我可以看到创建了一些窗口(TApplication,TFrmMain和其他几个),我知道TApplication是"控制器",但从未见过.但是,我能读一下真实窗口的值是什么吗?我知道它是TFrmMain(对于这个特定的应用程序),但它是否有可能以某种方式实现这一点?信息是存储在窗口属性中还是其他地方?谢谢!
我需要在我的C#应用程序中使用这个枚举,但它不会让我使用这些值.当我将类型指定为uint时,我可以使用-1值,当我指定int时,我不能使用最后2个值.有没有办法在这里使用unchecked关键字来允许我定义所有这些值?这些值来自外部源,因此我无法更改它们.
internal enum MyValues : int
{
value1 = -1,
value2 = 0,
value3 = 0x80000000,
value4 = 0xFFFFFFFF
}
Run Code Online (Sandbox Code Playgroud) 我有一个ComboBox,我设置了DrawMode = DrawMode.OwnerDrawFixed.然后我处理OnDrawItem事件,一切都很完美.但是,它看起来与标准的ComboBox非常不同,因为我似乎没有使用VisualStyles渲染.我是否需要做一些事情来专门为我的所有者绘制控件启用VisualStyle渲染?我在我的控制下尝试过SetWindowTheme,但我不确定要发送什么样的主题类.任何帮助将非常感激.谢谢!
我试图使用这个MySQL查询:
SET @a:=0; UPDATE tbl SET sortId=@a:=@a+1 ORDER BY sortId;
Run Code Online (Sandbox Code Playgroud)
不幸的是我收到了这个错误:
"参数'@a'必须定义"
是否可以将命令批处理为1个查询,或者我是否需要为此创建存储过程?