Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
DataGridViewで三角関数を入力したいです。
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10178#CommentId20419
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
ひでと
 (社会人)
投稿日時
2011/4/26 10:12:38
試してみたのですが、解決しません。もう少しご助力を・・・。
試してみたのは以下のようです。
Private Sub dataGridView_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dataGridView1.EditingControlShowing
'表示されているコントロールがDataGridViewTextBoxEditingControlか調べる
If TypeOf e.Control Is DataGridViewTextBoxEditingControl Then
Dim dgv As DataGridView = CType(sender, DataGridView)
'編集のために表示されているコントロールを取得
Dim tb As DataGridViewTextBoxEditingControl = _
CType(e.Control, DataGridViewTextBoxEditingControl)
'イベントハンドラを削除
RemoveHandler tb.Leave, AddressOf dataGridViewTextBox_Leave
'KeyPressイベントハンドラを追加
AddHandler tb.Leave, AddressOf dataGridViewTextBox_Leave
End If
End Sub
'DataGridViewに表示されているテキストボックスのKeyPressイベントハンドラ
Private Sub dataGridViewTextBox_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs)
If e.KeyChar = vbCr Then
sender.Text = Calk(sender.text)
End If
End Sub
Private Sub dataGridViewTextBox_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
sender.text = Calk(sender.text)
End Sub
Private Sub dataGridViewTextBox_Validated(ByVal sender As Object, ByVal e As System.EventArgs)
sender.text = Calk(sender.text)
End Sub
Private Sub dataGridViewTextBox_Leave(ByVal sender As Object, ByVal e As System.EventArgs)
sender.text = Calk(sender.text)
End Sub
として dataGridView_EditingControlShowingのRemoveHandler 、AddHandler を
KeyPress、Validating、Validated、Leaveと変更しながら実験してみました。
KeyPressの場合 If e.KeyChar = vbCr Then ではEnterキーが取得できないようで、
sender.Text = Calk(sender.text)は実行できませんでした。
他のTextBoxではうまくできていたのに・・・?
他の場合は sender.textは 計算した結果 ("1+1"で実験 "2")になりましたが、イベントが終わると
dataGridViewのセルでは "1+1"のままになってしまいます。
さらなるアドバイスをお願いいたします。