前提
バーコードスキャナーでバーコードを読み取り、その値をラベルに表示したい。
実現したいこと
テキストボックスを使用しない。バーコードスキャナーで読み取った値をラベルに表示したい。
発生している問題
テキストボックスに入力をする代わりに、バーコードスキャナーでバーコードを読み取ると、自動で文字が入る。
テキストボックスを使用せず、ラベルに表示させたいからバーコードスキャナーを使用したい。
該当のソースコード
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10 11namespace WindowsFormsApp7 12{ 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 private void Form1_KeyPress(object sender, KeyPressEventArgs e) 20 { 21 // イベントが未処理でTextBoxにフォーカスがなく、入力文字がa-zの場合 22 if (!e.Handled && !textBox1.Focused && 'a' <= e.KeyChar && e.KeyChar <= 'z') 23 { 24 textBox1.Focus(); //textBox1.Focus からlabel1.Focus();に変更し、ラベルにフォーカスを当てれば行ける? 25 textBox1.AppendText(e.KeyChar.ToString()); //label1.Textに変更するとエラーになる 26 //テキストボックスを非表示にしてlabel1.Text = textBox1.Text;では動かない。 27 28 e.Handled = true; 29 } 30 } 31 32 } 33} 34
試したこと
参考記事のtextBox1の箇所をlabel1に変更しても使用できず、テキストボックスにフォーカスが当たるから使用ができる。
また、テキストボックスを非表示にして、label1.Text = textBox1.Textみたいなイメージで実装しても使用できず。
↑これはテキストボックスを非表示にすることでフォーカスが当たらなくなるため。
補足情報(FW/ツールのバージョンなど)
C# .net framework 4.8 windows form visual studio
回答1件
あなたの回答
tips
プレビュー