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

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

C# と VB.NET の入門サイト

Re[2]: DataGridでの列の桁数制限について


(過去ログ 55 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■31088 / inTopicNo.1)  DataGridでの列の桁数制限について
  
□投稿者/ マジョラム (1回)-(2009/01/15(Thu) 10:19:58)

分類:[VB.NET/VB2005 以降] 

はじめまして。
マジョラムと申します。

仕事で、VBのアプリケーションを作ることになったのですが、
VB.netの初心者で、行き詰まり悩んでいます。

開発環境はVB.net2003、WinXPで、実現したい機能は、
CSVファイルのデータをDataGridに表示して、登録・編集・削除をできるようにしたいと考えています。

CSVファイルは半角英数13桁のIDのみのデータです。
こんな感じです。
4900000000016
4900000000023
4900000000030
4900000000047

で、その列の入力桁数の制限をMaxLengthで指定して、入力したところ、
次のようなメッセージが表示されました。

『オリジナルのデータ ストアに行をコミット中にエラーが発生しました。
列'ID'を'12345678901234'に設定できません。値がこの列のMaxLengthの制限を越えています。
値を修正しますか?』

これでも桁数の制限を実現できてはいますが、エラーが発生しましたというような
メッセージが出るのが好ましくないと考えています。

できることなら、指定以上の桁数を入力しても、それ以上は入力できないようにするか、
「エラーが発生しました。」というようなメッセージでない、メッセージが表示できればと
思っています。
もし、その方法がVB.net2003ではなく、2005の場合であれば実現できるのであれば、
開発環境を変えることも考えています。

以下がそのソースです。
どうぞよろしくお願いします。


    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim readData As String  '読込みデータ
        Dim fileNo As Integer   'ファイル番号
        Dim filePath As String  'ファイルパス名
        Dim fileName As String  'ファイル名
        Dim tbl As DataTable    'データテーブル

        Try
            fileName = "Operator.csv"
            filePath = System.IO.Path.Combine(Application.StartupPath, fileName)
            fileNo = FreeFile()

            'ファイルオープン
            FileOpen(fileNo, filePath, OpenMode.Input)

            'テーブルの作成
            tbl = New DataTable(FILE_OPE)
            tbl_temp = New DataTable
            tbl.Columns.Add("ID", System.Type.GetType("System.String"))
            tbl.Columns("ID").MaxLength = 13

            Do While Not EOF(fileNo)
                readData = LineInput(fileNo)
                tbl.Rows.Add(New Object() {readData})
            Loop

            DataGridOperator.DataSource = tbl

        Catch ex As Exception
            MsgBox("ファイルの読込みに失敗しました。" & vbCrLf & vbCrLf & ex.Message, MsgBoxStyle.Critical)
            Me.Close()
        Finally
            FileClose(fileNo)
        End Try

    End Sub


引用返信 編集キー/
■31104 / inTopicNo.2)  Re[1]: DataGridでの列の桁数制限について
□投稿者/ 魔界の仮面弁士 (960回)-(2009/01/15(Thu) 13:03:34)
No31088 (マジョラム さん) に返信
> できることなら、指定以上の桁数を入力しても、それ以上は入力できないようにするか、

「TextBox の MaxLength プロパティ」は使えませんか?

Dim column1 As New DataGridTextBoxColumn()
With tbl.Columns("ID")
    column1.MappingName = .ColumnName
    column1.TextBox.MaxLength = .MaxLength
End With
Dim style As New DataGridTableStyle()
style.MappingName = tbl.TableName
style.GridColumnStyles.Add(column1)
DataGridOperator.TableStyles.Add(style)

引用返信 編集キー/
■31161 / inTopicNo.3)  Re[2]: DataGridでの列の桁数制限について
□投稿者/ マジョラム (2回)-(2009/01/15(Thu) 19:50:57)
指定桁以上の入力を制限させることができました。

魔界の仮面弁士さん、ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -