アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、VC++2005でプログラムをしているのがどうしてもエラーが出てしまうのでわかる方がいればよろしくお願いします。

プログラムとしては、テキストボックスの中のデータが空だった場合にはある処理を行うというものを作っています。
プログラム本体は、
if(textBox1==NULL)
{
label1->Text="データがありません\n";
}
です。
エラーメッセージは、
エラー1 error C2446: '==' : 'int' 型から'System::Windows::Forms::TextBox ^' 型への変換ができません。
というメッセージが出てしまいます。

このエラーは、型変換が違っているということのエラーなのでしょうか?どのように修正するとよいのでしょうか?
説明などがとても下手かもしれませんが、よろしくお願いします。

A 回答 (4件)

 こんばんは。



 これでは駄目でしょうか?

if(textBox1->Text == System::String::Empty)
{
//do something
label1->Text = "データがありません\n";
}
    • good
    • 1
この回答へのお礼

ありがとうございました。
きちんと動きました。

お礼日時:2008/11/27 20:52

お使いのコードを分解してどこが意図通りに動作しないのかを検証しましょう



// テキストボックスのデータを取得
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は失敗します
    • good
    • 0
この回答へのお礼

ありがとうございます。
正常に動きました。

お礼日時:2008/11/27 20:53

if(textBox1==NULL)



if(textBox1->Text=="")
ではダメか?

「データが空」つまり「文字列の長さが0」つまり「文字列が""」ってのは「NULL」とは違う。

NULLとは違うのだよNULLとはッ
    • good
    • 0
この回答へのお礼

ありがとうございます。
それは一応試してみたのですがダメでした。

お礼日時:2008/11/26 15:29

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;
}
などといった具合にしましょう
# 字下げには 全角スペースを使っていますので行頭のスペースを置換してください

この回答への補足

教えていただきありがとうございます。

そのプログラムなどを使いながらビルドを行ったのですが、データが入っているときも入力してくださいというようなメッセージが表示されてしまうのですがどうしたらよいのでしょうか?

補足日時:2008/11/26 14:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!