NumericUpDownコントロールで”00”表示する方法 – 固定ページ 2 – プログラミング – Home

NumericUpDownコントロール...
 
通知
すべてクリア

[解決済] NumericUpDownコントロールで”00”表示する方法

固定ページ 2 / 2

つばさ
 つばさ
(@つばさ)
ゲスト
結合: 23年前
投稿: 16
 

NumericUpDownを作って試してみたのですが
おそらく数値しか表示できないのではないかと思います
(Valueなどに00を入力しても強制的に0になるため)

ですので、NumericUpDownを継承してクラスを作成しても同様に00の表示は
できないかと思います

ですので
自作のNumericUpdownもどきを作成してみるのはどうでしょうか?


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
Topic starter  

つばささん

アドバイスありがとうございます。

自作のNumericUpdownもどきを作成することにしました。

テキストボックスの右側にNumericUpDownコントロールの矢印だけを表示して似たような
コントロールを作成しました。

プログラム的なことで質問なのですが

文字列(00,01,02)をカウントアップさせるには一時的にint型に変換してテキストボッ
クスに戻すときに再度、string型に変換させようと思います。ところがstring型からint
型へ上手く変換できません。Cとかだとatoiで行けると思いますがVC++.NET CLIでは融通
が利かずに困っています。何か上手い方法を教えてください


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

int->String^

int::ToString
もしくは
String::Format

String^->int

int::TryParse
(int::Parse)
または
Convert::ToInt32


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
Topic starter  

Blueさん

String^ a = domainUpDown1->Text;

で変数aをint型に変換したいのですがString^->intは出来ないようです。
何か上手い方法はありますでしょうか?Cのようにatoiを使用したいのですが・・。


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
Topic starter  

すみません。下記のようにして無事に出来ました!

String^ b = domainUpDown1->Text;

int i = System::Convert::ToInt32(b);


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
Topic starter  

NumericUpDownコントロールに近いdomainUpDownを使用することにしました。これな
ら00表示いけそうです。

domainUpDownコントロールですが↑矢印と↓矢印を押下した際のイベントは切り分けて
取得できるのでしょうか?初めて使用するコントロールでヘルプ等を見ましたがよくわ
かりません


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>String^->intは出来ないようです。
ちょっと間際らしかったですね。
->はアロー演算子ではなくて → という意味で書いたのです。

String^ s = 00;
int n = int::Parse(s); // 数字以外がありうるならばTryParseでチェックしたほう
// が ベター


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
 

Blueさん

アドバイスありがとうございます。下記のほうがベターということですね!

String^ s = 00;
int n = int::Parse(s);

すぐにレスが頂けて大変助かります。また非常に勉強になります。今後とも宜しくお願
いしますm(--)m


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

いろいろやってみたところ、継承してUpdateEditTextをオーバーライドすれば表示でき
るようです。

まずiijimaさんの
> 2007/03/27(火) 17:20:24
の方法でNumericUpDownクラスを継承したCustomNumericUpDownを作成します。

コードはこれだけ。

●CustomNumericUpDown.h

#pragma once

ref class CustomNumericUpDown :
public System::Windows::Forms::NumericUpDown
{
public:
CustomNumericUpDown(void);
protected:
virtual void UpdateEditText () override; // 追加!!
};

●CustomNumericUpDown.cpp

#include StdAfx.h
#include CustomNumericUpDown.h

CustomNumericUpDown::CustomNumericUpDown(void)
{
}

void CustomNumericUpDown::UpdateEditText()
{
this->Text = this->Value.ToString(L00);
}

ただし、これでビルドしても
>(5) ここで一旦ビルドすると、ツールボックスの[プロジェクト名]コンポーネントの
>  ところにCustomNumericUpDownが追加される。
にはならなかったので、
(そもそもツールボックスに[プロジェクト名]ってのがない)
手動でForm1.hを編集します。

>Form1.hファイルの#pragma onceの次の行に
>#include CustomNumericUpDown.h

>private: System::Windows::Forms::NumericUpDown^ numericUpDown1;
>を
>private: CustomNumericUpDown^ numericUpDown1;
>に
>this->numericUpDown1 = (gcnew System::Windows::Forms::NumericUpDown());
>を
>this->numericUpDown1 = (gcnew CustomNumericUpDown());

として、ビルドすればいいです。
一応デザインモードは使えているようです。

ちなみに私の環境は
Windows XP Pro SP2/Visual Studio 2005 Pro SP1
です。


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
Topic starter  

BLUEさんへ

おはようございます。上記の方法でばっちりいけました!!デザインも問題なく
開けています。

NumericUpDownで文字列が表示できるとは思っていなかったので大変参考になりました。

本当にありがとうございます。


返信引用
iijima
 iijima
(@iijima)
ゲスト
結合: 21年前
投稿: 44
 

> ただし、これでビルドしても
>>(5) ここで一旦ビルドすると、ツールボックスの[プロジェクト名]コンポーネントの
>>  ところにCustomNumericUpDownが追加される。
> にはならなかったので、

例えば、プロジェクト名がTestだったとき、ツールボックスに「Testコンポーネン
ト」
というカテゴリがあって、その中に追加されませんか?

私の環境↓だと追加されます。

Windows Xp Pro. SP2
Visutl Srutio 2005 Pro.

Blueさんと環境同じですよね。


返信引用
iijima
 iijima
(@iijima)
ゲスト
結合: 21年前
投稿: 44
 

typo訂正

Visual Studio 2005 Pro.


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
Topic starter  

iijimaさん

>>例えばプロジェクト名がTestだったとき、ツールボックスに「Testコンポーネン
>>ト」というカテゴリがあって、その中に追加されませんか?

プロジェクト名は表示されずにコンポーネントのみしか表示されませんでした。

私の環境も

Windows Xp Pro. SP2
Visual Srutio 2005 Pro

です。


返信引用
iijima
 iijima
(@iijima)
ゲスト
結合: 21年前
投稿: 44
 

あれー
私のだけ特別バージョン?(^^;


返信引用
KEN
 KEN
(@KEN)
ゲスト
結合: 22年前
投稿: 77
Topic starter  

iijimaさん、BLUEさんのおかげで無事に解決することが出来ましたので本件は解決済み
とさせて頂きます。貴重なアドバイス等ありがとうございました。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました