Я не знаю независимого от платформы способа сделать это, но в Windows, если вы используете модуль msvcrt, вы можете использовать его функцию getch:
import msvcrt
c = msvcrt.getch()
print 'you entered', c
mscvcrt также включает в себя не- -blocking kbhit (), чтобы увидеть, был ли нажат ключ без ожидания (не уверен, есть ли соответствующая функция curses). В UNIX есть пакет curses, но не уверен, можете ли вы использовать его, не используя его для всего вывода экрана. Этот код работает под UNIX:
import curses
stdscr = curses.initscr()
c = stdscr.getch()
print 'you entered', chr(c)
curses.endwin()
Обратите внимание, что curses.getch () возвращает порядковый номер нажатой клавиши, чтобы он имел тот же результат, что и я должен был его отличать.
DataGridView является лучшим выбором, поскольку это свободно и идет с.NET WinForms 2.0. Можно определить доступные для редактирования столбцы или только для чтения. Плюс Вы может настроить появление при необходимости.
DataGridView хорош.
Если Вы предпочитаете более симпатичный интерфейс, средства управления Telerik лучше.
Если DataGridView обработает Ваши потребности, это - правильный ответ. Другая опция (хотя это, кажется, непопулярно вокруг этих частей!) Infragistics NetAdvantage. Оборотные стороны к Infragistics являются, прежде всего, дорогостоящей и несколько крутой кривой обучения; позитивные аспекты - то, что это некоторые самые мощные средства управления, которые Вы будете когда-либо находить - поэтому при необходимости в их гибкости пойдите для нее.
У меня нет опыта с Telerik (который был упомянут другими здесь), но они действительно кажутся довольно хорошими. Будучи, который моя компания инвестировала справедливо в большой степени в Infragistics, мы не склонны переключиться в ближайшее время...