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

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

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

No.87268 の関連記事表示

<< 0 >>
■87268  Re[2]: DataGridViewの編集モード移行
□投稿者/ big7_8 -(2018/05/02(Wed) 15:08:23)
>
    No87255 (WebSurfer さん) に返信

    WebSurfer さん

    はじめまして、big7_8です。
    即返ありがとうございます。

    私もSQLの利用は考慮いたしました。ですが、オブジェクト指向のプログラム自体が初めてで
    とてもそこまでは頭がついていきそうにありません。

    それで、SQLについては将来の課題ということで・・・

    せっかくのアドバイスすみません。


    > アップされているコードを読む気力がないのでハズレだったらスミマセンが・・・

    コードが読み難くて申し訳ありませんでした。VB.NETからコピーした
    エディッター上では字下げされていたので、これでいいと思っておりましたが、
    UPしたら、 字下げが消去されていました。しかし、時間がなかったので
    そのままUPしてしまいました。後、コメントがないのも読み難い理由の一つかな
    と思います。それで、再度、字下げ、コメントをつけて提示させて頂きます。


    【サンプルデータ生成コード】
    '構造体の宣言
    Public Structure Jstock
       Public dteDate As Date
       Public N20O As Single
       Public N20H As Single
       Public N20L As Single
       Public N20C As Single
    End Structure


    Public Class Form1
       Inherits System.Windows.Forms.Form

       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
         Dim js As Jstock
         FileOpen(1, "e:\data\test4.dat", OpenMode.Random, , , Len(js))

         'データ入力
         js.dteDate = #4/1/2014#
         js.N20O = 21657.87
         js.N20H = 21719.43
         js.N20L = 21591.39
         js.N20C = 21660.28
         FilePut(1, js, 1)
         js.dteDate = #4/2/2015#
         js.N20O = 21801.41
         js.N20H = 21917.35
         js.N20L = 21746.69
         js.N20C = 21778.74
         FilePut(1, js, 2)
         js.dteDate = #4/3/2016#
         js.N20O = 21801.41
         js.N20H = 21917.35
         js.N20L = 21746.69
         js.N20C = 21778.74
         FilePut(1, js, 3)
        js.dteDate = #4/4/2017#
        js.N20O = 21801.41
         js.N20H = 21917.35
        js.N20L = 21746.69
         js.N20C = 21778.74
         FilePut(1, js, 4)
         js.dteDate = #4/5/2018#
        js.N20O = 21801.41
         js.N20H = 21917.35
         js.N20L = 21746.69
        js.N20C = 21778.74
         FilePut(1, js, 5)

         'データ閲覧
         FileGet(1, js, 1)
        Trace.WriteLine(js.dteDate)
         Trace.WriteLine(js.N20O)
         Trace.WriteLine(js.N20H)
        Trace.WriteLine(js.N20L)
         Trace.WriteLine(js.N20C)
         FileGet(1, js, 2)
        Trace.WriteLine(js.dteDate)
         Trace.WriteLine(js.N20O)
         Trace.WriteLine(js.N20H)
        Trace.WriteLine(js.N20L)
         Trace.WriteLine(js.N20C)

         FileClose(1)
       End Sub
    End Class


    【本体コード】

    Imports System
    Imports System.Drawing
    Imports System.Windows.Forms
    Imports System.IO


    Public Interface IDataGridViewEditingCell

    End Interface

    '構造体の宣言
    Public Structure Jstock
       Public dteDate As Date
       Public N20O As Single
       Public N20H As Single
       Public N20L As Single
       Public N20C As Single
    End Structure

    'グローバル変数の宣言
    Public Class Config
       Public Shared dteDate As Date
       Public Shared N20O As Single
       Public Shared N20H As Single
       Public Shared N20L As Single
       Public Shared N20C As Single

       Public Shared RN1 As Integer
       Public Shared RNX As Integer
       Public Shared COUNT As Integer
    End Class


    Public Class Form1
       Inherits System.Windows.Forms.Form

       Implements IDataGridViewEditingCell

       Shared dgv As DataGridView

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

         Dim js As Jstock
         FileOpen(1, "e:\data\test4.dat", OpenMode.Random, , , Len(js))
         '最大レコード数
         Config.RN1 = LOF(1) / Len(js)
         '初期表示を最大レコードに設定
         Config.RNX = Config.RN1


         'RnxCheck()でENDを選択したとき、LoopをExit
         Do While Config.RNX > 0
           DataGet()
           '初回のみ列を定義
           If Config.COUNT = 0 Then InitializeDGV()
           '行の初期化
           dgv.Rows.Clear()
           '行を定義及びセルのデータ引き渡し
           FillDGV()

           'DataGridViewの表示
           Me.Show()
           dgv.Select()
           dgv.CurrentCell = dgv(0, 4)
           dgv.BeginEdit(True)
           MessageBox.Show("a1")
           '参照レコードナンバーの変更
           RnxCheck()
         Loop

         '終了(RnxCheck()でENDを選択)
         If Config.RNX = 0 Then
           FileClose(1)
           Application.Exit()
         End If

       End Sub

       'コンストラクタ-
       Public Sub New()
         dgv = New DataGridView()
         dgv.Dock = DockStyle.Fill
         dgv.AllowUserToAddRows = False
         dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
         Me.Controls.Add(dgv)
       End Sub


       '参照レコードナンバーの変更
       Public Sub RnxCheck()
         Dim GetString As String = dgv.CurrentCell.Value

         Select Case GetString
           Case ""

           Case "<<"
             Config.RNX = Config.RNX - 100
             If Config.RNX < 1 Then Config.RNX = 1
           Case "<"
             Config.RNX = Config.RNX - 1
             If Config.RNX < 1 Then Config.RNX = 1
           Case "END"
             Config.RNX = 0
           Case ">"
             Config.RNX = Config.RNX + 1
             If Config.RNX > Config.RN1 Then Config.RNX = Config.RN1
           Case ">>"
             Config.RNX = Config.RNX + 100
             If Config.RNX > Config.RN1 Then Config.RNX = Config.RN1
           Case Else
             Config.RNX = Config.RN1 '仮
         End Select

       End Sub


       '列を定義
       Sub InitializeDGV()
         Dim column1 As New DataGridViewTextBoxColumn
         column1.HeaderText = " 銘柄 "
         dgv.Columns.Add(column1)

         Dim column2 As New DataGridViewTextBoxColumn
         column2.HeaderText = "OPEN"
         dgv.Columns.Add(column2)

         Dim column3 As New DataGridViewTextBoxColumn
         column3.HeaderText = "HIGH"
         dgv.Columns.Add(column3)

         Dim column4 As New DataGridViewTextBoxColumn
         column4.HeaderText = "LOW"
         dgv.Columns.Add(column4)

         Dim column5 As New DataGridViewTextBoxColumn
         column5.HeaderText = "CLOSE"
         dgv.Columns.Add(column5)

         Config.COUNT = 1

       End Sub

       '行を定義
       Sub FillDGV()
         dgv.Rows.Add("日付等", Config.dteDate, Config.RNX)
         dgv.Rows.Add()
         dgv.Rows.Add("日経平均", Config.N20O, Config.N20H, Config.N20L, Config.N20C)
         dgv.Rows.Add()
         dgv.Rows.Add("<<", "<", "END", ">", ">>")
       End Sub


       Sub DataGet()
         Dim js As Jstock

         FileGet(1, js, Config.RNX)
         Config.dteDate = js.dteDate
         Config.N20O = js.N20O
         Config.N20H = js.N20H
         Config.N20L = js.N20L
         Config.N20C = js.N20C
       End Sub

    End Class
記事No.87254 のレス /過去ログ150より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -