Ввод мыши в приложении c# windows forms
Здравствуйте Коллеги Программисты,
Я сделал приложение c# Windows Forms в Visual Studio 2017, которое открывает любой PDF-файл. Форма, которую я использую при запуске приложения, - это поле с кнопкой (чтобы открыть pdf-файл), два текстовых поля, которые дают координаты X и Y мыши, и поле, в котором открывается PDF-файл. К сожалению, всякий раз, когда я нажимаю на поле PDF, ничего не происходит. Как мне взаимодействовать с pdf-файлом и показывать пользователю, где находится мышь во время щелчка?
Код для открытия PDF:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) //button to open PDF { OpenFileDialog openFileDialogE = new OpenFileDialog(); if (openFileDialogE.ShowDialog() == System.Windows.Forms.DialogResult.OK) { axAcroPDF1.src = openFileDialogE.FileName; } } private void axAcroPDF1_MouseClick(object sender, MouseEventArgs e) // supposed to record position on click { base.OnMouseClick(e); textBox1.Text = e.X.ToString(); textBox2.Text = e.Y.ToString(); } private void axAcroPDF1_MouseUp(object sender, MouseEventArgs e) // supposed to record position on release { textBox1.Text = e.X.ToString(); textBox2.Text = e.Y.ToString(); Console.WriteLine("mouse up"); } } }
Что я уже пробовал:
Я настроил существующий код, который дает пользователю координаты кликов, где бы он ни нажимал в графическом поле. Я изменил его так, чтобы он, возможно, работал с коробкой PDF. Я использовал его в своем коде на C#. Я также протестировал существующую программу сам по себе, и она тоже не работала.
В конце концов я хочу вывести на экран расстояние между тем, когда я начинаю щелкать, и тем, когда я отпускаю.
Оригинальный код:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace testGraphiqueCSharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } protected void pictureBox1_MouseClick(MouseEventArgs e) { base.OnMouseClick(e); textBox1.Text = e.X.ToString(); textBox2.Text = e.Y.ToString(); } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { textBox1.Text = e.X.ToString(); textBox2.Text = e.Y.ToString(); Console.WriteLine("mouse up"); } } }
Richard MacCutchan
Где находится код для отображения PDF-файла?
Member 13396929
Он в первом окне. Он находится в разделе " private void button1_MouseClick()"
Richard MacCutchan
Неужели? Я не могу найти никакого метода с такой подписью. И если вы не можете точно объяснить, где находится код и что он должен делать, и в чем проблема, вряд ли кто-то может предложить какие-либо предложения.
Member 13396929
Я сделал несколько небольших изменений в своем вопросе, можете ли вы теперь определить код?
Richard MacCutchan
Нет, я все еще не вижу метода с именем button1_MouseClick()
Вы действительно написали этот код? И единственное место, где я могу увидеть ссылку на PDF-файл, - это axAcroPDF1.src = openFileDialogE.FileName;
- Это должно быть сделано для показа?
Member 13396929
Я вижу, я забыл изменить его на button1_Click
BillWoodruff
Интерфейс CON Acrobat Reader очень ограничен.
См.: https://stackoverflow.com/questions/30452420/capture-click-events-inside-a-wpf-webbrowser-control-showing-a-pdf-document