- ベストアンサー
VB2008でe.valueとはどういう意味でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> あちこちのサイトでe.value=というのを見かけます。 というのは何のことかわかりませんが、 もしかしたらイベント情報のことではないでしょうか? たとえば Private Sub dataGridView1_CellClick(ByVal sender As Object, _ ByVal e As DataGridViewCellEventArgs) _ Handles dataGridView1.CellClick の ByVal e のことです。イベントを処理するプロシージャには常にこの e という名の変数が使われます。 で、変数 e の中身が何なのかは、それに続く型名(上例ではSystem.Windows.Forms.KeyEventArgs)で検索すれば調べられます。 見当違いのコメントでしたら、無視して下さいね。
その他の回答 (1)
- mimeu
- ベストアンサー率49% (39/79)
#1 です 失礼しました、e の型名は System.Windows.Forms.KeyEventArgs ではなく DataGridViewCellEventArgs です。
関連するQ&A
- DataGridView(1,1).Valueの型について
VB2008を使っています。 DataGridView(1,1).Valueの型はそのセルのデータによって TypeName( DataGridView(1,1).Value) は異なると思いますが、 DataGridView(1,1).Valueの型は何でしょうか? Dim v As DataGridViewCell = DataGridView(1,1).Value で良いのでしょうか?
- ベストアンサー
- Visual Basic
- コードの違いについて(VB2008)
お世話になっております。 最近、VB2008ExpressEditionの勉強を始めたのですが、まだ下記の違いが理解できていません。 (1) private sub hoge1() DataGridView1(0,0).Value = "TEST" end sub (2) private sub hoge2() dim dgv as DataGridView = DataGridView1 dgv(0,0).Value = "TEST" end sub (1)と(2)は同じ結果になりますが、ネットで色々なサンプルを見ると、(2)の書き方が多はなぜなのでしょうか。 同じ結果が得られるなら(1)の方が行数が少なくて良さそうに思えるのですが、(2)にする理由が分からないのです。 お恥ずかしい内容ですが、きちんと理解したいので、わかりやすい説明をいただけると大変ありがたいです。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- DataGridViewの特定のセルで選択状態を保ちたい VB2005
DataGridViewの件で質問したいのですが。 よろしくお願いします。 VB2005で、DataGridViewの特定のセルでカーソルがとどまる(選択状態)ようにしたいのですが 思ったように動いてくれません。例えば、下のようなDataGtridViewがあったとして, 例 ------------------ |ID | X | Y | ------------------ |001| 100 | | ------------------ |002| 150 | | ------------------ |003| 105 | | ------------------ ID が002の行で、Y列のセルにカーソルが入りXと違う数を入力したら、メッセージを 表示させて、そのセルにカーソルがとどまる処理を作りたいのですが。下の行のセルに 移動してしまいます。 DataGridView_CellEndEditイベントやDataGridView1_CellValueChangedなどで カーソルがとどまる処理をしているつもりなのです下の行に移動してしまいます。 DataGridViewの初期設定の問題でしょうか? Private Sub DataGridView1_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged Dim DgvRow As Integer '行をセット DgvRow = e.RowIndex ' X と Yが異なれば、メッセージ表示 If DataGridView1("X", e.RowIndex).Value <> DataGridView1("Y", e.RowIndex).Value Then MsgBox("X <> Y", MsgBoxStyle.OkOnly) Me.DataGridView1.CurrentCell = Me.DataGridView1("Y", DgvRow) ' これも駄目だった ↓ 'Me.DataGridView1.CurrentCell = Me.DataGridView1("Y", e.RowIndex - 1) End If End Sub アドバイスいただけたら幸いです。よろしくお願い致します。 開発環境 VB2005 Visual Studio 2005 Standard Edition(SP1) Windows XP Pro SP2
- ベストアンサー
- Visual Basic
- VB2010のDataGridViewについて
VB初心者です。 VisualBasic2010のDataGridViewの表示についての質問です。 DataGridViewは通常、行単位でデータを管理する形式になっていますが、 行と列を逆にして操作したいのです。 古いバージョンのVBではコントロール右上のマークをクリックするとタスクが出てきてそこで設定できるようなのですが、VB2010ではタスクの中の操作がなくなっています。 もし、VB2010でも設定する方法があるのでしたら教えてください。 古いバージョンのVBで行と列の入れ換えを行っているサイトがあるので参考までに↓ http://d.hatena.ne.jp/Yamaki/20091214/1260767140
- ベストアンサー
- Visual Basic
- VB2005 DataGridView で選択状態(青色反転)
DataGridViewの件で質問したいのですが。 よろしくお願いします。 VB2005で、DataGridViewの特定のセルが選択されて値が青色反転した Selectイベントのような状態にしたいのですが。 例えば、下のようなDataGtridViewがあったとして, 例 ------------------ |ID | X | Y | ------------------ |001| 100 | | ------------------ |002| 150 | | ------------------ |003| 105 | | ------------------ ID が002の行で、Y列のセルにカーソルが入りXと違う数を入力したら、メッセージを 表示させて、そのセルを青色反転させる処理を作りたいのですが。下の行のセルに 移動してしまいます。 そこで下記のようなコードを書きました。 Private Sub DataTable1DataGridView_CellValidating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataTable1DataGridView.CellValidating If e.ColumnIndex <> Me.DataTable1DataGridView.Columns("Y").Index Then Exit Sub If Me.DataTable1DataGridView("X", e.RowIndex).Value IsNot Nothing AndAlso _ Me.DataTable1DataGridView.EditingControl IsNot Nothing Then If Not Me.DataTable1DataGridView("X", e.RowIndex).Value.ToString.Equals(Me.DataTable1DataGridView.EditingControl.Text) Then MsgBox("X <> Y", MsgBoxStyle.OkOnly) Me.DataTable1DataGridView.BeginEdit(True) 'e.Cancel = True End If End If End Sub e.cancel = True だとセルにはとどまりますが。セルが選択状態にはなりません。 BeginEdit(True)を使うと下のセルが選択状態になります。 アドバイスいただけたら幸いです。よろしくお願い致します。 開発環境 VB2005 Visual Studio 2005 Standard Edition(SP1) Windows XP Pro SP2
- ベストアンサー
- Visual Basic
- datagridviewに行追加し、値を入れたいです。VB.NET
'データグリッドの選択された値を変数frowに代入する。 frow = DataGridView1.SelectedCells.Item(0).Value 'データグリッドの選択された値を変数srowに代入する。 srow = DataGridView1.SelectedCells.Item(1).Value 'データグリッドに新しい行を追加する。 KYU70000_1.DataGridView1.Rows.Add(DataGridView1.Rows) KYU70000_1.DataGridView1.Rows.Add(DataGridView1.Rows) '選択された値をKYU70000_1のデータグリッドに代入する。 frow = KYU70000_1.DataGridView1.SelectedCells.Item(0).Value ←ここがインデックスが範囲を超えています、となります。 srow = KYU70000_1.DataGridView1.SelectedCells.Item(1).Value どうすれば良いのでしょうか?教えてください。意味が分かりません。
- ベストアンサー
- Visual Basic
- VB2008、Insertのループをかけたいのですが・・・
初の質問になりますが、よろしくお願いします。 現在、VB2008にて、DataGridViewに入力した内容を、Insertで登録処理をするという作業を行っているのですが、変わった現象が起きてしまうのです。 まず、ボタンクリックのイベントで、DataGridViewの内容を一行づつ取り込み、Insertのループを行うと言うものなのですが、 DataGridViewにある列は、'日付','出勤時間',退社時間','~~と続くのですが、日付だけしか一行づつ取り込めず、それ以外の列項目は、値の入っている列までしか取り込めないんです。 たとえば、二行目まで値を入れ、三行目からはすべてのCellをNullの状態にしてInsertのループをかけると、二行目にしか入らない値が、三行目以降まで続いてしまうんです。これってどういうことでしょうか、、、ちなみに日付だけはきちんとInsertされるのです。どなたかお分かりになる方いらっしゃらないでしょうか。 ちなみにこれがソースです。 For r As DataGridViewRow in DataGridView1.Rows 日付 = DataGridView1(0, r.Index).Value If IsDBNull (DataGridView1(9, r.Index).Value) = False Then 出勤時間 = DataGridView1(9, r.Index).Value Else If IsDBNull(DataGridView1(5. r.Index).Value) = False Then 出勤時間 = "0" End If '列が多いので、省略します。 'ここからInsert sql = "Insert into Time Seet" sql &= "Values (" sql &= "'" & 日付 & "'" : : Next r という形です。列が長いので、だいぶ省略しましたので伝わりにくいかと思いますが、よろしくお願いします。 ちなみに他のサイトでは、 ループの外側でパラメータクエリを作成して、ループの中ではパラメータの設定とSQLの実行のみにすればよいです。 と言われましたが、パラメータクエリというのがイマイチ理解できなかったので・・・ できればそれらに関する情報や考え方なども教えてくださるとうれしいのですが・・・よろしくお願いします。
- 締切済み
- Visual Basic
- VBのDATAGRIDVIEWについて
環境VB.net 初心者です。教えていただきたのですが Datagridviewを使用しループ処理で全行の単価セル内に数字の0を追加したいのですが1行目のセルのみ値が追加されません。(2行以降は全て追加されます)コードは下記の通りです。 For CNT = 0 To マスタテーブルCNT マスタテーブルdatagridview("単価", CNT).Value = 0 Next ご教授お願いします。
- 締切済み
- Visual Basic
- 【VB2008】 DataGridView_Scroll時の「縦」なのか「横」なのか区別する方法
こんばんは,いつも勉強させていただいております. どうぞよろしくお願いいたします. VB2008でDataGridViewを作成いたしまして,これと他のDataGridViewや ScrollBarとを連動してスクロールさせております. (下のようなコードになります.) Private Sub DGV1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) _ Handles DGV1.Scroll DataGridViewの縦スクロールバーを動かした時のみ他のコントロールを 連動させたいのですが,上記の方法だと横スクロールバーを動かした時も 反応してしまいます... DataGridViewのイベントでそれらしきものを探したり,検索にかけたり してみましたが,見つかりませんでした. どのような方法でも結構でございますので,DataGridViewがスクロールされた時に, それが縦か横か分かりそうな方法がございましたら, 是非ともアドバイスいただきたくお願い申し上げます. もしお詳しい方がいらっしゃいましたら,何卒お願いいたします.
- ベストアンサー
- Visual Basic
お礼
ありがとうございました。 ご指摘の通りです。 大変助かりました。