Вот именно никак не реализовано...
ну например, попробовал узнать, что там пробегает в контроле во время нажатия клавиш.
- Код: Выделить всё
Public Class SomeForm
WithEvents dg1 As New MyDataGridView
Private Sub SomeForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
me.Controls.Add(dg1)
dg1.Columns.Add("test1", "test1")
dg1.Rows.Add() '' трам пампам пару ячеек здесь добавим в контроле, что был не пустой
End Sub
end class
Public Class MyDataGridView
Inherits System.Windows.Forms.DataGridView
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Debug.Print(m.Msg)' где чего-нибудь на нажатие клавиш?
MyBase.WndProc(m)
End Sub
End Class
Viper писал(а):То есть типичный случай реализации X через Y.
Эта ирония? Вот, скажем, набирает человек цифровые данные, с русскими региональными настройками. Удобнее пальцами тыкать на цифровой клавиатуре, и в качестве разделителя запятая (и эх точка там на клаве ), ну что пальцем тянуться к запятой на основной клавиатуре? Или может поставить в настройках в качестве разделителя запятую? Эти два выхода никуда негодны. "Я - пользователь сделайте мне красиво, запятую как в других программах, в том же екселе например".
Ну и что остается делать мне бедному программисту?
1. Ловим клавишу и меняем на лету - очень заманчиво и никаких гемороев
2. Позволить пользователю вставлять "не разделитель" в качестве "разделителя" и потом парсить и подгонять к цифровым данным - можно, но геморройно и некрасиво для пользователя там и точка и запятая и черт с рогами
3. Еще какой-то простой способ, которого я не знаю из-за которого выгляжу дураком