現在、VC++2005でプログラムをしているのがどうしてもエラーが出てしまうのでわかる方がいればよろしくお願いします。
プログラムとしては、テキストボックスの中のデータが空だった場合にはある処理を行うというものを作っています。
プログラム本体は、
if(textBox1==NULL)
{
label1->Text="データがありません\n";
}
です。
エラーメッセージは、
エラー1 error C2446: '==' : 'int' 型から'System::Windows::Forms::TextBox ^' 型への変換ができません。
というメッセージが出てしまいます。
このエラーは、型変換が違っているということのエラーなのでしょうか?どのように修正するとよいのでしょうか?
説明などがとても下手かもしれませんが、よろしくお願いします。
No.3
- 回答日時:
お使いのコードを分解してどこが意図通りに動作しないのかを検証しましょう
// テキストボックスのデータを取得
String^ ss = textBox1->Text;
int nData = 0;
// 取得した文字列が空の場合 または Int32への変換が出来ない場合
// メッセージボックスを表示する
if ( String::IsNullOrEmpty(ss) || Int32::TryParse( ss, nData ) == false ) {
MessageBox::Show( L"数値を入力してください" );
textBox1->Focus();
return;
}
といった具合なら
String^ ss = textBox1->Text;
MessagBox::Show( ss, L"テキストボックスの値を取得" );
int nData = 0;
if ( String::IsNullOrEmpty(ss) ) {
MessageBox::Show( L"空白は許されません" );
textBox1->Focus();
return;
}
if ( Int32::TryParse( ss, nData ) == false ) {
MessageBox::Show( L"数値を入力してください" );
textBox1->Focus();
return;
}
といった具合にして見ましょう
入力された文字が全角数字の場合はTryParseは失敗します
No.1
- 回答日時:
C++/CLIで組んでいるのですね
# プログラミングスタイルも記述しておきましょう
TextBoxオブジェクトから直接 int型との比較は出来ないので
TextBoxのTextプロパティから設定値を引き出してこれを int型へ変換し比較しましょう
TextBoオブジェクトの変数がtextBox1であるなら
// テキストボックスのデータを取得
String^ ss = textBox1->Text;
int nData = 0;
// 取得した文字列が空の場合 または Int32への変換が出来ない場合
// メッセージボックスを表示する
if ( String::IsNullOrEmpty(ss) || Int32::TryParse( ss, nData ) == false ) {
MessageBox::Show( L"数値を入力してください" );
textBox1->Focus();
return;
}
などといった具合にしましょう
# 字下げには 全角スペースを使っていますので行頭のスペースを置換してください
この回答への補足
教えていただきありがとうございます。
そのプログラムなどを使いながらビルドを行ったのですが、データが入っているときも入力してくださいというようなメッセージが表示されてしまうのですがどうしたらよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 数年前からWindows10 の Update ができないです。なぜですか? 7 2022/11/09 06:03
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- IT・エンジニアリング 不具合の現状認識をしないプログラマって信用できる人? できない人? 8 2023/07/28 09:09
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
16進をASCIIコードに変換する...
-
2の補数の計算について
-
16進コード文字列を文字列に変換
-
C++ 文字列変数と16進数の比較
-
WORD型をCString型に変換する方法
-
vb6の桁数指定
-
2進数から10進数へ変換
-
アメリカ表記?イギリス表記?
-
C++/CLI System::String::Fotma...
-
【C++/CLI】int型からString型...
-
C#でListとDictionaryの判別方法
-
秀丸マクロで 大文字を小文字...
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
手動または分散トランザクショ...
-
Accessのフィールド名に半角括...
-
VBAでアクセスDBからデータの取...
-
Excel2010のinputboxで複数デー...
-
vba フィルター 複数条件 3つ以...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6.0の「vbFromUnicode」はVB....
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
16進をASCIIコードに変換する...
-
16進コード文字列を文字列に変換
-
WORD型をCString型に変換する方法
-
C++ 文字列変数と16進数の比較
-
C#でListとDictionaryの判別方法
-
【C++/CLI】int型からString型...
-
Pythonの指数表記について
-
バイト型のデータをLong型に変換
-
10進数を2進数
-
2進数から10進数へ変換
-
対数変換のついて
-
数字→漢数字変換
-
Excelの数字(文字列)合計につい...
-
Boolean型変数の値を反転する方法
-
VC++ std::stringからLPCWSTRに...
-
VB6 case文について
-
文字型を日付/時刻型に変換する...
-
textbox.textやlabel.captionの...
おすすめ情報