
No.1ベストアンサー
- 回答日時:
お世話になります。
DataTable 等をバインドしているのであれば、
DataTable.Select("条件", "ソートする列") の
一番最後の行オブジェクトを取得すれば最大値がとれるはずです。
FlexGrid を使ったのが初めてなので効率があまりよくないかもしれないですが
バインドしていない方は、For 文で FlexGrid の行をがーっとまわして
最大値を取得しています。
以下のコードは、Form10 を作成して、デザイナでは何も手を加えず
Load のイベントですべてのコントロールやイベントの設定を行っています。
各 TabPage に存在する FlexGrid を ダブルクリックすると
最大値をメッセージ表示します。
Public Class Form10
Private Sub Form10_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Controls.Clear()
Dim tab As TabControl = New TabControl()
tab.TabPages.Clear()
tab.Dock = DockStyle.Fill
Me.Controls.Add(tab)
'' データバインドする場合
Dim tabPage1 As TabPage = New TabPage("DataBind")
Dim flex1 As C1.Win.C1FlexGrid.C1FlexGrid = New C1.Win.C1FlexGrid.C1FlexGrid()
flex1.Dock = DockStyle.Fill
' Data Bind
flex1.DataSource = Me.CreateData()
' Double Click した時のイベントを登録
AddHandler flex1.DoubleClick, AddressOf flex1_DoubleClick
tabPage1.Controls.Add(flex1)
tab.TabPages.Add(tabpage1)
'' データバインドしない場合
Dim tabPage2 As TabPage = New TabPage("not DataBind")
Dim flex2 As C1.Win.C1FlexGrid.C1FlexGrid = New C1.Win.C1FlexGrid.C1FlexGrid()
flex2.Dock = DockStyle.Fill
' not Data Bind
Dim dt As DataTable = Me.CreateData()
flex2.Item(0, 1) = dt.Columns(0).ColumnName
flex2.Cols.Item(1).Name = dt.Columns(0).ColumnName
flex2.Cols.Item(1).DataType = GetType(Integer)
For index As Integer = 0 To dt.Rows.Count - 1
flex2.Item(index + 1, 1) = dt.Rows(index)(0)
Next
' Double Click した時のイベントを登録
AddHandler flex2.DoubleClick, AddressOf flex2_DoubleClick
tabPage2.Controls.Add(flex2)
tab.TabPages.Add(tabpage2)
End Sub
'' データバインドしている場合の最大値をメッセージ表示
Private Sub flex1_DoubleClick(ByVal sender As Object, ByVal e As EventArgs)
Dim flex As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid)
Dim dt As DataTable = DirectCast(flex.DataSource, DataTable)
Dim maxRow As DataRow = dt.Select("", "Column1")(dt.Rows.Count - 1)
MessageBox.Show(maxRow("Column1").ToString())
End Sub
'' データバインドしていない場合の最大値をメッセージ表示
Private Sub flex2_DoubleClick(ByVal sender As Object, ByVal e As EventArgs)
Dim flex As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid)
Dim max As Integer = 0
For index As Integer = 1 To flex.Rows.Count - 1
Dim value As Integer = CInt(flex.Item(index, 1))
If max < value Then max = value
Next
MessageBox.Show(max.ToString())
End Sub
Private Function CreateData() As DataTable
Dim dt As DataTable = New DataTable("test")
dt.Columns.Add("Column1", GetType(Integer))
dt.Rows.Add(1)
dt.Rows.Add(12)
dt.Rows.Add(15)
dt.Rows.Add(30)
dt.Rows.Add(21)
Return dt
End Function
End Class
お返事が遅れまして大変申し訳ありません。
教えていただいたコードを参考に、目的の動作を完成
させることができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【C#】DataGridViewの最大列数について
システム
-
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
-
4
DataGridView 複数選択で行番号の取得
Visual Basic(VBA)
-
5
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
6
(SQLSERVER) 別サーバーへテーブルコピー
SQL Server
-
7
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
IIF関数の使い方
-
Worksheets メソッドは失敗しま...
-
VBAのFind関数で結合セルを検索...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAでのリスト不一致抽出について
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
B列の最終行までA列をオート...
-
エクセルVBA intersect colu...
-
複数csvを横に追加していくマク...
-
Excel VBA:エクセルのマクロで...
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
重複データの合算(VBA)
-
【Excel VBA】カンマと改行コー...
-
エクセル 2つの表の並べ替え
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAを使って検索したセルをコピ...
-
DataGridViewに空白がある場合...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
複数の列の値を結合して別の列...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBAで、特定の文字より後を削除...
-
エクセル 2つの表の並べ替え
おすすめ情報