小编sab*_*abi的帖子

WindowsForm上的图像!= TextRenderer.DrawText()图像

正如我在这里发布的,我能够在我的WindowsForm上显示一些特殊字体,我无法将此字体保存为图片.问题Graphic.DrawString()是无法显示所有或特殊字体.WindowsForm正在使用TextRenderer它的更新(添加2.0),这就是WindowsForm能够显示这些字体的原因.

精细.现在我坐在这里尝试做同样的事情TextRenderer.DrawText()- 我不得不说我的输出图像现在​​好多了,仍然不同于WindowsForm.让我们看看我的代码:

    Bitmap Bit = new Bitmap(500, 200);
    Graphics g = Graphics.FromImage(Bit);

    string s = "TEST";

    g.Clear(Color.White);
    TextRenderer.DrawText(g, s, new Font("Code 128", 72), new Point(20, 20), Color.Black, Color.White);
    Bit.Save(@"C:\myFolder\test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
    Bit.Dispose();
Run Code Online (Sandbox Code Playgroud)

(代码128是一种特殊字体,如果您真的想了解更多信息,请点击以下链接获取更多信息)

所以这是有效的,我得到了我的形象,很好.现在我在WindowsForm上的标签上添加相同字体和相同字体的相同字符串.而且有一些不同.不同之处在于,创建的图像TextRenderer在第一个位置始终具有不同的字符.其他一切都很好!我不懂.让我们来看看WinForm VS Image:

带有Label VS TextRenderer Image的WindowsForm(相同的字符串和字体)

我们可以看到第一个"字符"(如果我们可以说这个例子中的'字符')在某种程度上是不一样的.现在让我将TextRenderer Image函数中的字符串更改为"TTEST".将WinForm上的"TEST"与TextRenderer上的"TTEST"进行比较:

在此输入图像描述

看起来很有趣吗?所以,TextRenderer.DrawText()+ special font = first char很奇怪.但为什么?以及如何解决这个问题?有什么建议?谢谢!

编辑:如果有帮助我可以发布WindowsForm的代码

partial class Form1
{
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary> …
Run Code Online (Sandbox Code Playgroud)

.net c# image winforms

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

如何在文件编码未知时使用ReadAllText

我正在使用ReadAllText读取文件

    String[] values = File.ReadAllText(@"c:\\c\\file.txt").Split(';');

    int i = 0;

    foreach (String s in values)
    {
        System.Console.WriteLine("output: {0} {1} ", i, s);
        i++;
    }
Run Code Online (Sandbox Code Playgroud)

如果我试着读一些文件,我有时会得到错误的字符(对于ÖÜÄ......).输出就像'?',因为编码存在一些问题:

output: 0 TEST
output: 1 A??O?
Run Code Online (Sandbox Code Playgroud)

一种解决方案是在ReadAllText中设置编码,让我们说这样ReadAllText(@"c:\\c\\file.txt", Encoding.UTF8)可以解决问题.但是,如果我仍然会得到'?' 作为输出?如果我不知道文件的编码怎么办?如果每个文件都有不同的编码怎么办?用c#做最好的方法是什么?谢谢

.net c# encoding

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

获取.ttf文件的字体名称

假设有一个.ttf(True Type Font)文件.您可以通过单击将其安装在Windows上.字体的真实名称不是.tff之前的文本(比如说SuperFont.ttf =>所以名称不是"SuperFont" - 它可能是,但大部分都不是).我想阅读.tff(不知何故?)并得到字体的名称(不安装字体).有任何想法吗?

.net c# fonts

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

我的条形码有问题(Code 128)

使用时很容易生成9个条形码中的3个Font()

Font f = new Font("Free 3 of 9", 80);
this.Font = f;

Label l = new Label();
l.Text = "*STACKOVERFLOW*";
l.Size = new System.Drawing.Size(800, 600);
this.Controls.Add(l);

this.Size = new Size(800, 600);
Run Code Online (Sandbox Code Playgroud)

它的工作.我看到条形码,我能够扫描它.现在我想使用其他东西,比如Code 128因为我需要安装Font(完成)并且只是改变

Font f = new Font("Free 3 of 9", 80);Font f = new Font("Code 128", 80);

之后我在窗口看到条形码.问题是我无法扫描它.我认为那是因为我没有使用正确的开始停止标签的条形码.据我所知,必须始终有一个开始/停止char或其他什么.对于Code 128的*中的3个我不确定.在维基上有开始代码A所以我试过

Font f = new Font("<Start Code A>test<Stop>", 80);,Font f = new Font("<Start Code …

.net c# barcode

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

Excel:如果使用绝对路径只能打开文件,为什么?

我有一些麻烦要说明为什么我得到一个例外.我有这样的事情:

string path = "file.xls";
if (File.Exists(path))
{
  Excel.Application xlApp = new Excel.Application();
  Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(path); //exception
  //...
}
Run Code Online (Sandbox Code Playgroud)

例外:

Unhandled Exception: System.Runtime.InteropServices.COMException: 'file.xls' could not be found
Run Code Online (Sandbox Code Playgroud)

这就是为什么我要检查File.Exists,所以我没有得到这个例外.那么这File.Exists是如何工作的,是真的,但文件仍无法找到?如果我使用绝对路径,那么它正在工作.为什么?我想在没有绝对路径的情况下使用这个,有什么想法吗?谢谢

编辑:当然file.xls和我的文件夹在同一个文件夹中.exe- >这就是为什么(正如预期的那样)File.Exists返回true.只是想明确这一点;)

.net c# excel file

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

选择前150行,然后选择下一行150,依此类推?

如何在表中的oracle sql中选择前x行,然后是下一个x,依此类推?我知道我可以使用TOP/LIMIT,然后我得到第一个x

select a from b limit 150 =>得到前150行.

编辑:为什么?我想将前150个输出复制到一个文件中,然后将下一个150复制到另一个文件中等等......

sql oracle select rows

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

使用Font创建条形码 - 这是正确的吗?我错过了什么吗?

我看到了很多关于.NET和生成条形码的帖子和帖子.很多人都在谈论图书馆,dll和一些"开箱即用的应用程序".我只是问自己:我真的需要这些东西吗?我(此时)能够创建条形码而无需任何额外的库或其他东西.多数人使用Font很好.我只需要一个barcodefont,让我们可以像9中的3个一样免费,我可以安装它(实际上我甚至不必安装它,它足以拥有文件的路径)然后我会做这样的事情:

    Font f = new Font("Free 3 of 9", 80);
    this.Font = f;

    Label l = new Label();
    l.Text = "*STACKOVERFLOW*";
    l.Size = new System.Drawing.Size(800, 600);
    this.Controls.Add(l);

    this.Size = new Size(800, 600);
Run Code Online (Sandbox Code Playgroud)

我可以显示条形码.你知道吗?我的手机能够读取它.这就是多么容易.我可以将其保存为jpg,我可以将其保存为xml文件,依此类推.如果我想要另一个条形码,我只需要新的字体,将9中的3个更改为其他内容即可.

所以我的问题是:我错过了什么?每个人都在谈论"呃使用已经完成的东西","使用图书馆"等等.那么如果我继续这个没有额外的库和其他东西我可以得到什么问题?有什么建议?谢谢

.net c# fonts barcode

6
推荐指数
1
解决办法
4989
查看次数

cmd以某种方式将中文文本作为输出

我有一些cmd.exe的问题,我有时用它来创建文件并在那里写输出.但如果我试试这个:

wmic logicaldisk get name, freespace >> output.txt
echo %date% >> output.txt
Run Code Online (Sandbox Code Playgroud)

我开始它2-3次,我得到一个output.txt像:

FreeSpace    Name  
17990881280  C:    
             D:    
????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

那么这个中文文本看起来很有趣,但我希望看到日期.我想某种程度上编码随日期而改变.因为如果我单独回显%date%>> output.txt一切都很好,我得到了日期.我该怎么办,我想获得wmic输出和日期.有任何想法吗?谢谢

windows shell cmd batch-file

5
推荐指数
2
解决办法
7467
查看次数

为什么String与Scala中的Int,Boolean,Byte ...不同?

因为我知道一点点的Java,我试图在每一个Scala代码一些Java类型,如使用java.lang.Integer,java.lang.Character,java.lang.Boolean...等等.现在人们告诉我"不!对于Scala中的所有东西都有自己的类型,Java的东西会起作用 - 但你应该总是喜欢Scala类型和对象".

好的,我现在看到,Scala中有Java中的所有东西.不知道为什么最好使用例如Scala Boolean而不是Java Boolean,但很好.如果我看我看的类型scala.Boolean,scala.Int,scala.Byte...然后我看着字符串,但它不是scala.String,(以及它甚至没有java.lang.String 混淆),它只是一个字符串.但我想我应该使用直接来自scala的所有内容.也许我不正确理解scala,有人可以解释一下吗?

scala

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

在VS2010中更改"{"的默认位置?

我开始使用VS2010和C#," { "很奇怪.如果我创建一个新项目或自动创建一个函数,它总是如下:

function()
{
    //
}
Run Code Online (Sandbox Code Playgroud)

所以我必须多次编辑它.如何将其改为正常?正常对我来说:

function() {
    //
}
Run Code Online (Sandbox Code Playgroud)

我知道那不重要,但我不喜欢它.我确定有办法改变它,是吗?谢谢

编辑:谢谢大家的快速回答.也许我想知道的另一件事 - 如果我改变{和创建一个大项目的规则.如果其他人也想在它上面工作(在他们自己的VS2010上),他们能以某种方式改变{恢复正常而没有任何问题或只是手动吗?编辑2:不,我认为这是不可能的.

.net c# coding-style visual-studio-2010 visual-studio

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