C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.73133 の関連記事表示

<< 0 >>
■73133  Re[5]: コンボボックスとテキストボックスの連動
□投稿者/ 魔界の仮面弁士 -(2014/08/21(Thu) 14:52:54)
    No73130 (巻 さん) に返信
    >> 複数並べなくて良いのでしょうか?
    > 選択した生徒1人の名簿番号だけを表示したいので、1つで大丈夫です。
    であれば IN ではなく、= で良いのでは…。


    No73130 (http:// さん) に返信
    > []を付けた方が分かりやすいかなと思い付けたものでしたが、
    > 先に記述してあることを書いておかなければなりませんでしたね…。

    ふむ。では、SQL などのデータベース処理の部分は一切無視して、
    データバインドの部分のみについて書いてみます。


    下記のサンプルでは、TextBox を 2 つ用意しており、
    どちらにも「名簿番号」が表示されるようになっています。

    txt1 は、名簿番号を書き換えるためのもので、
    txt2 は、ComboBox の選択項目を変更するためのものです。


    Public Class Form1
     Private WithEvents cmb As ComboBox
     Private WithEvents txt1 As TextBox
     Private WithEvents txt2 As TextBox
     Private ds As DataSet
     Private bs As BindingSource
     Private ep As ErrorProvider
     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      txt1 = New TextBox()
      txt2 = New TextBox()
      txt1.SetBounds(32, 32, 200, -1)
      txt2.SetBounds(32, 64, 200, -1)
      Controls.Add(txt1)
      Controls.Add(txt2)
      cmb = New ComboBox()
      cmb.SetBounds(32, 100, 200, -1)
      Controls.Add(cmb)

      ds = New DataSet()
      Dim tbl = ds.Tables.Add("生徒名簿")
      tbl.PrimaryKey = New DataColumn() {tbl.Columns.Add("名簿番号", GetType(Integer))}
      tbl.Columns.Add("生徒氏名", GetType(String))
      tbl.Rows.Add(100, "碇屋長助")
      tbl.Rows.Add(200, "新井忠")
      tbl.Rows.Add(300, "紫村健")
      tbl.Rows.Add(400, "須和真司")
      tbl.AcceptChanges()

      bs = New BindingSource()
      bs.DataSource = ds
      bs.DataMember = tbl.TableName

      'txt1.ReadOnly = True
      txt1.DataBindings.Add("Text", bs, "名簿番号", False, DataSourceUpdateMode.OnValidation)

      cmb.DataSource = bs
      cmb.ValueMember = "名簿番号"
      cmb.DisplayMember = "生徒氏名"

      txt2.DataBindings.Add("Text", cmb, "SelectedValue", False, DataSourceUpdateMode.OnValidation)

      ep = New ErrorProvider(Me)
      ep.BindToDataAndErrors(bs, "")
     End Sub

     Private Sub txt1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txt1.Validating
      Try
       bs.EndEdit()
       bs.Current.Row.ClearErrors()
      Catch ex As Exception
       e.Cancel = True
       bs.Current.Row.SetColumnError("名簿番号", ex.Message)
      End Try
     End Sub
    End Class


    txt1 や ep は説明のためのオマケ機能です。今回の案件では不要なはず…。
記事No.73121 のレス /過去ログ122より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -