この関数はagrsとして渡されるByte()の汎用リストを必要とします。このリストに追加するものは何も得られないようです。printdata(0)& (1)それに追加する。リストに追加する(Byte())
Dim printdata(1) As String
labelname = "WasNow"
printdata(0) = "9,99"
printdata(1) = "6.99"
Dim args = New List(Of Byte())
args.Add(Convert.ToByte(printdata))
ApplicationContext.CurrentDevice.Printer.Print(labelname, 1, args)
Frmscanprint.Show()
これは、追加するアイテムが1つのみのコードの動作中のC#バージョンです。
private void printButton_Click(object sender, EventArgs e)
{
try
{
this.printNumber++;
var args = new List<byte[]>() { Encoding.ASCII.GetBytes(string.Format(CultureInfo.InvariantCulture, "Test #{0}", this.printNumber)) };
if (!ApplicationContext.AllDevicesSelected)
{
ApplicationContext.CurrentDevice.Printer.Print("SamplePrint", 1, args);
}
else
{
PrintSampleForEachDevice("SamplePrint", 1, args);
}
}
}
VBが文字列形式の数値を変換しようとしているときにC#が文字列を変換していますが、これは2つの異なることです。 Convert.ToByteは配列をとらない。実際の数字を文字列形式に変換する場合は、9,99と6.99が2つの異なる形式(ドットとカンマ)であるため、適切に文化を設定する必要があります。たぶんVBでEncoding.ASCII.GetBytesを使用しようとしました –