質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

678閲覧

trackbarの値が一桁のとき、先頭に0をつけたい

Merrifield

総合スコア31

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2020/06/23 08:28

visual studi o2019のwindoesフォームアプリケーション(.NET Framework)を使用しています。

private void trackBar1_ValueChanged(object sender, EventArgs e) { // TrackBarの値が変更されたらラベルに表示 label1.Text = trackBar1.Value.ToString(); mySerialPort.Write(Convert.ToString(trackBar1.Value) ); }

主に上記の部分に関する質問です。trackbarの値が一桁のときに先頭に0を付けて送信を行いたいです。たとえば、trackbarの値が1の場合は、01を送るようにしたいのです。どのようにすればよいでしょうか?

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp6 { public partial class Form1 : Form { public Form1() { InitializeComponent(); mySerialPort.Open(); } private void Form1_Load(object sender, EventArgs e) { // 最小値、最大値を設定 trackBar1.Minimum = 0; trackBar1.Maximum = 100; // 初期値を設定 trackBar1.Value = 0; // 描画される目盛りの刻みを設定 trackBar1.TickFrequency = 10; // スライダーをキーボードやマウス、 // PageUp,Downキーで動かした場合の移動量設定 trackBar1.SmallChange = 1; trackBar1.LargeChange = 10; // 値が変更された際のイベントハンドラーを追加 trackBar1.ValueChanged += new EventHandler(trackBar1_ValueChanged); } private void trackBar1_Scroll(object sender, EventArgs e) { } private void trackBar1_ValueChanged(object sender, EventArgs e) { // TrackBarの値が変更されたらラベルに表示 label1.Text = trackBar1.Value.ToString(); mySerialPort.Write(Convert.ToString(trackBar1.Value) ); } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { mySerialPort.Close(); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

「c# 数字 0埋め」と検索すればいろいろ出てきます。

投稿2020/06/23 09:02

YAmaGNZ

総合スコア10258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Merrifield

2020/06/24 00:54

ありがとうございます。解決できました。
guest

0

$"{trackBar1.Value:d2}"でどうでしょう。

投稿2020/06/23 08:42

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Merrifield

2020/06/23 08:49

すみませんが、そのコードはどういう意味でしょうか?
Daregada

2020/06/23 12:28 編集

C# の「挿入文字列」を使って {} の間に書いた式の値を d2 書式指定文字列で 0埋め2桁 で文字列化しています。
Merrifield

2020/06/23 23:49

そのコードをどこに加えればよいでしょうか?my.SerialPortの前に入れると ”エラー CS0201 代入、呼び出し、インクリメント、デクリメント、新しいオブジェクトの式のみがステートメントとして使用できます。” というエラーがでるのですが。
Daregada

2020/06/24 01:45

文字列が生成されるので、文字列が必要な場所に書いてください。 label1.Text = $"{trackBar1.Value:d2}"; mySerialPort.Write($"{trackBar1.Value:d2}"); といった具合に。
Merrifield

2020/06/24 01:49

分かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問