• ベストアンサー

c++ CLI 文字列検索について

himajin100000の回答

  • ベストアンサー
回答No.1

http://msdn.microsoft.com/en-us/library/s1wwdcbf.aspx メソッド一覧を眺めてみよう。 Containsメソッドってちゃんとのがあるよね? http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx

関連するQ&A

  • C# コントロール取得

    C# コントロール取得 選択しているコントロールを取得する方法とかありますでしょうか? VC#2008でアプリケーションを作っています。 例えばテキストボックスのLeave関数などで MessageBox.Show(this.textbox1.Text) みたいにしたいのですが テキストボックスが20個ぐらい必要だとLeave関数を20個作らなくてはいけないので 上記の方法がわかれば1つで済むので是非知りたいです。 自分でも調べてActiveControlを使用してみたのですが反応しません。 MessageBox.Show(this.ActiveControl.Text); としましたが・・ 教えてください

  • コントロールの表示されるテキストを変えたい

    ContextMenuStripで Menu1 Menu2 ・・・・Menu10 と10個のメニューがあります。(コントロールは1つです。) これらの表示されるテキストを一括で変えたいのですがうまくできません。普通のテキストボックスなら出来たのですが・・・。 Me.Controls の部分があやしいようにも思うのですが・・・。 よろしくお願いします 言語は VB.NET2008EE 試してみたソースは下記です。 For c As Integer = 1 To 10 Con_Name = "Menu" & c For Each con In Me.Controls If con.Name = Con_Name Then con.text = "test" End If Next Next

  • 文字の判定について質問です

    Visual Basicについての質問です。 私は、"Textbox1"に"gakuban"で宣言した文字を入力すると、"Textbox2"に"simei"で宣言した名前を表示させ、それ以外の文字が入力されたらメッセージボックスで"違います"が表示されるプログラムを作りたいと思い、下のようなプログラムを組みました。しかしこれだと、"Textbox1"に文字を1文字入力するたびに"違います"のメッセージボックスが表示されてしまいます。これを直したいのですが、どのようにプログラムを直せばいいのか分かりません。なので、この下のプログラムをどう直せばいいのか教えていただけないでしょうか? Public Class Form1 Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged Dim gakuban() As String = {"H05001", "H05002", "H05004", "H06007", "H05009"} Dim simei() = {"一郎", "次郎", "三郎", "四郎", "五郎"} Dim i As Integer i = (Array.IndexOf(gakuban, TextBox1.Text)) If i >= 0 Then TextBox2.Text = simei(i) Else MessageBox.Show("違います") End If End Sub End Class

  • VC++ MFC エラーコード C2248 private メンバ (クラス 'CObject'で…

    VC++ MFC エラーコード C2248 現在、ダイアログAにあるコンボボックス(IDC_COMBO1)に単語を登録、削除する処理をしています。 ダイアログAには他に[登録]ボタン(IDC_BUTTON1)と[削除]ボタン(IDC_BUTTON2)があります。 IDC_COMBO1 を CComboBox m_combo; として // [登録]ボタン押下時 void CADlg::OnBnClickedButton1() { CString Txt, old; int ret = 0, count = 0, i; m_combo.GetWindowText(Txt); if ( strcmp(Txt, "") == 0 ) { AfxMessageBox( _T("語句を入力してください")); return; } // コンボボックスのリスト数取得 count = m_combo.GetCount(); for(i = 0; i < count; i++){ // IDC_COMBO1に登録済みの語句を順番に調べていく m_combo.GetLBText(i, old); // 既に登録済みの名前があった場合 if (oldFile == Txt){ ret = MessageBox( _T("上書きしますか?"), _T("語句登録"), MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 ); } } if ( ret == IDYES ) { return; } else if ( ret == IDNO ) { // 後ほど説明します CBDlg dlg; dlg.DoModal(); m_combo1.AddString(NewName); // extern CString NewName;←グローバル変数(Bダイアログから) return; } // 登録されていない語句の場合 m_combo.AddString(Txt); } 上記の登録の方、エラーなくコンパイルがとおり、コンボボックスにもちゃんと格納されています。 削除の方もエラーなくちゃんとコンボボックスから削除されます。 次に >else if ( ret == IDNO ) の部分なのですが [いいえ]ボタン(IDNO)が押された場合にはダイアログBが表示されます。 ダイアログBには語句を入力するエディットボックスIDC_EDIT1、[登録]ボタン(IDC_TOUROKU)、[取り消し]ボタン(IDC_TORIKESI)があります。 IDC_EDIT1 を CEdit m_ed1; として ここのBダイアログでもAダイアログ中のコンボボックスに格納されている語句が入力された場合はメッセージボックスを表示したいのです。 そこで void CBDlg::OnBnClickedTouroku() { // TODO: ここにコントロール通知ハンドラ コードを追加します。 int rup, cnt, ret; CString oldf; CADlg cad; CComboBox cfdn = cad.m_combo; m_ed1.GetWindowText(NewName); // CString NewName;←グローバル変数 // Aダイアログ中のコンボボックスリスト数の取得 cnt = cfdn.GetCount(); for(rup = 0; rup < cnt; rup++){ // Aダイアログのコンボボックス中に登録されている語句取得 cfdn.GetLBText(rup, oldf); if (oldf == NewName){ ret = MessageBox( _T("本当に上書きしてもいいですか?"), _T("環境設定"), MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 ); } } if(ret == IDOK){ OnOK(); } else{ return; } } としました。 ここでコンパイルすると 1>c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(1820) : error C2248: 'CObject::CObject' : private メンバ (クラス 'CObject' で宣言されている) にアクセスできません。 1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(558) : 'CObject::CObject' の宣言を確認してください。 1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(529) : 'CObject' の宣言を確認してください。 1> コンパイラでのこの診断により関数 'CCmdTarget::CCmdTarget(const CCmdTarget &)' が生成されました。 のようにエラーがでます。 調べてみると CComboBox cfdn = cad.m_combo; が原因のようです。 ググってみたりしたのですが解消法がわからず質問させていただきました。 よろしくお願いします。

  • VB.NETで作成したDLLについて

    ご回答宜しくお願い致します。 現在、VBでユーザーコントロールのDLLを作成し、 DLLをC#で使用するというプログラムを開発してます。 そこで、以下のような現象が起こり 対応できかねております。 まず、VBで以下のメソッドを書きました。 Public Sub showMessage(ByVal bol As Boolean)     MessageBox.Show(bol) End Sub そして、C#からDLLのコントロール ( Panel1 ) を呼び出し、 private void Panel1_MouseClick(object sender, MouseEventArgs e) {     Panel1.setSelectedFlg(true); } これでメッセージボックスが表示されると思ったんですが表示されません。 VBのMessageBoxを別の処理に変えても全く動作しません。 メソッドを動作させる方法はございますでしょうか 宜しくお願い致します。

  • C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか

    C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか? C#2008ですが、Form1にTextBoxが30個あって、textBox1~textBox30という名前がついています。 このテキストボックスの値をForm2で取得したいのですがなかなかうまくいきません。 ------------------------- Form2: private void Form2_Click(object sender, EventArgs e){  Form1 fm = new Form1();    int No = 15; //ここを1~30まで動的にしたい  string result = fm.textBox15.Text; //直接comboBox_type15と書くのではなく「"comboBox_type" + No.ToString()」のようにしたい  MessageBox.Show(result); } ------------------------- コントロールを配列にして Control[] ctlArray = new Control[30] { fm.textBox1, fm.textBox2, …, fm.textBox30 }; のようにしてみましたが、エラーになってしまいます。 いろいろネットで検索してみたのですが、「コントロール名を動的に文字列で作成して使う」という方法がどこにも載っていなく、数時間格闘しています。 すみませんがご教授願います。よろしくお願いいたします。

  • TabPageでは・・・つかえないのですか?

    For con_c = 1 To 10 con_name = "textbox" & con_c For Each con In Me.Controls If con.Name = con_name Then con.Text = "123" End If Next Next 上記のようなコードをTabPageのなかに入れるとうごきません。 そとに出すと動くのですが、対応していないのでしょうか?

  • 条件に該当したテキストボックスの名前を(2)

    前回 http://okwave.jp/qa/q6556269.html で テキストボックスの名前をメッセージボックスに表示する方法(VBA)を 教えて頂いたのですが新たにわからない事がでてきてしまったので 質問させて下さい><自力で解決しようとしたのですがどうしてもできなくて… Accessのバージョンは2003です。 フォームに伝票番号と得意先コードの2つの入力フィールド (テキストボックス)があります。 やりたいことは、以下のようなことです。 伝票番号は100未満の数値でなくてはならず、 得意先コードは1以上かつ10未満でなくてはなりません。 もし、上記の条件に該当しない場合はテキストボックスの色を 黄色に変更させます。 そうしたら黄色に変更されたテキストボックスだけの名前を メッセージボックスに表示させます。 前回教えて頂いたVBAを追記して動かしたところ どちらか片方がエラーの場合はテキストボックスの名前が メッセージボックスに表示されるのですが、 2つともエラーの場合、メッセージボックスが2回表示され 1つのメッセージボックスに1つの名前しか表示されません。 記述したVBAでは正常な動作だと思うのですが、 これを1つのメッセージボックスに黄色のテキストボックスの 名前をいっぺんに表示させたいのですが、 どのようにすれば宜しいでしょうか。 良かったらご教授お願いします!>< 現在記述しているVBAは以下になります。 ---------------------------------------------------------------- Private Sub 閉じる_Click() 'フォーム上のコントロールを格納する変数 Dim ctrl As Control 'フォーム上のすべてのコントロールに対しての繰り返し処理 For Each ctrl In Me.Controls '取得したコントロールがテキストボックスかどうか If ctrl.ControlType = acTextBox Then '伝票番号の値が100未満の場合 If Me!txtNo <= 100 Then '背景をピンクに Me!txtNo.BackColor = vbMagenta Else '背景を黄色にして値を元に戻す Me!txtNo.BackColor = vbYellow End If '得意先コードの値が1以上かつ10未満の場合 If Me!txtCode <= 10 And Me!txtCode >= 1 Then '背景をピンクに Me!txtCode.BackColor = vbMagenta Else '背景を黄色にして値を元に戻す Me!txtCode.BackColor = vbYellow End If End If Next ctrl Me.Undo 'フォーム上のすべてのコントロールに対しての繰り返し処理 For Each ctrl In Me.Controls 'テキストボックスのコントロールを取得 If TypeOf ctrl Is TextBox Then '取得したコントロールが黄色だった場合 If ctrl.BackColor = vbYellow Then 'メッセージボックスに名前を表示 MsgBox ctrl.Name End If   End If Next ctrl End Sub

  • 【C#】自家製MessageBoxのようなもの

    MessageBoxで確認メッセージを表示しているのですが、 表示する位置を自由に変えられないなど、不便なところがあるので、 自分でMessageBoxのようなものを作ってみようかとおもうんですが、 可能ですか? openFileDialogのようにフォームに配置して、 if(mymessagebox1.show("よろしいですか?","確認",MessageBoxButtons.YesNo) == DialogResult.Yes){ 実際の処理 } こんな感じでできるといいんですが… わかる方は教えてください。お願いします。 (WindowsXP,.NET Framework 4,VisualStudio 2010 Professionalです)

  • メッセージボックスを大きくする方法

    こんにちは。 MessageBox.Showで表示するメッセージボックスを 全体的に大きくしたいのですが、できるのでしょうか? アイコン、メッセージ、ボタンを大きくしたいです。 よろしくおねがいいたします。