Pendahuluan
Seringkali, navigasi dokumen dalam aplikasi pembuatan catatan dibuat dalam bentuk tautan (Tautan), yang dibuat pengguna secara manual di setiap dokumen. Tetapi bagaimana jika Anda melakukan navigasi kata kunci tanpa menggunakan tautan unik dalam dokumen?
Tugas yang saya tetapkan sendiri ketika meningkatkan fungsionalitas program FAQ.Net adalah untuk membuat mekanisme yang nyaman untuk menavigasi dokumen RTF dalam aplikasi FAQ.Net.
Akibatnya,
FAQ.Net versi 2.7 memperoleh fungsi tooltip menggunakan kata kunci khusus dan definisi mereka.
Apa keuntungan dan manfaatnya dalam program catatan dan bagaimana menggunakannya saya akan jelaskan secara singkat dalam kerangka artikel ini.

Cara membuat navigasi dalam dokumen RTF menggunakan komponen RichTextBox standar
- Menggunakan bookmark
Dalam standar RTF, ada mekanisme bookmark bawaan, tetapi komponen RichTextBox standar tidak mendukung pengoperasian elemen bkmkstart dan bkmkend. - Nonaktifkan properti DetectUrls dan buat tautan Anda sendiri.
Metode ini dijelaskan dalam artikel Tautan dengan teks arbitrer di RichTextBox . Dalam hal ini, Anda perlu menambahkan kode untuk menentukan URL dan mengembalikan semua tautan saat membuka dokumen RTF. Saya pikir ini memakan waktu dan akan sedikit mengurangi kecepatan aplikasi. - Tip alat
Setelah dua metode yang dijelaskan di atas, saya membaca artikel tentang tooltips di komponen RichTextBox [WinForms] RichTextBox ToolTip seperti Visual-Studio . Opsi ini diambil sebagai dasar.
Tip alat Daftar tugas
Dalam ide dengan tooltips, saya melihat potensi untuk hasil yang diinginkan dan mulai menyadarinya. Yang diperlukan hanyalah memperluas komponen tooltip dan menambahkan tautan dengan transisi ke sana. Tidak ada solusi siap pakai di Internet yang luas, jadi saya mengembangkan kodenya sendiri.
Daftar tugas yang harus diselesaikan:
- mengatur penyimpanan kata kunci (petunjuk) dengan tautan
- mengimplementasikan fungsi menentukan kata ketika Anda mengarahkan kursor ke sana
- buat antarmuka untuk membuat dan mengedit "kamus konfirmasi" (lihat deskripsi di bawah)
- buat kemampuan untuk dengan cepat membuat kata kunci dalam dokumen RTF menggunakan "kamus petunjuk"
- fungsionalitas tooltip harus dapat diperluas
Rincian Barang
- Kata kunci disimpan di dalam database SQLite. Skrip pembuatan tabel:
CREATE TABLE word_tooltip ( id_content INTEGER NOT NULL, word VARCHAR NOT NULL, tooltip_type INTEGER NOT NULL, comment VARCHAR NOT NULL, url_adr VARCHAR NULL, group_name VARCHAR NULL, fore_color VARCHAR NULL, create_date DATETIME DEFAULT (CURRENT_TIMESTAMP), modif_date DATETIME, PRIMARY KEY (id_content, word) )
- fungsi menentukan kata ketika mengarahkan kursor dilakukan dengan menggunakan fungsi standar komponen RichTextBox: GetPositionFromCharIndex dan GetCharIndexFromPosition.
Simbol di mana awal atau akhir kata ditentukan:
',',';',':','!','?','%','+','=','*','$','\'','\"','<','>','^','(',')','[',']','{','}','Β°','&','|',' ','\n','"','\t'
- "Petunjuk kamus" - itulah yang saya sebut panel di mana semua kata yang dibuat pengguna ditampilkan dan diedit, di mana Anda perlu menampilkan petunjuk ketika Anda mengarahkan kursor ke dokumen RTF. Panel "Kamus kiat" terdiri dari:
- Tombol kontrol: buat, edit, salin, dan hapus.
- bilah pencarian
- panel kata dalam bentuk pohon (TreeView)
- panel pengeditan
- Membuat kata-kata di "kamus prompt" dilakukan dengan menekan Ctrl + Spasi. Jika Anda meletakkan kursor di tengah kata, maka ketika Anda memanggil Ctrl + Spasi, filter kata akan secara otomatis diatur ke filter kata di kamus bantuan di awal kata sebelum kursor, dan ketika Anda memilih kata (Enter atau klik dua kali) seluruh kata diganti dengan yang dipilih. Saat Anda menekan huruf pada keyboard, pengguna diperlihatkan kata filter di bagian atas komponen pemilihan kata. Untuk kenyamanan bekerja dengan kamus, saat Anda mengarahkan kursor ke kata, sebuah petunjuk ditampilkan di dalam daftar yang difilter.



- ekstensi fungsionalitas tooltip ada di bidang tooltip_type INTEGER NOT NULL. Jenis-jenis tooltips:
- dengan mengacu pada catatan (dokumen RTF internal). Hanya ID not (pertanyaan) yang diindikasikan. Saat mengarahkan kata, nama catatan ditampilkan sebagai petunjuk.
- dengan referensi ke sumber daya Internet. URL dan teks petunjuk disediakan.
- petunjuk statis. Hanya teks petunjuk yang ditunjukkan.
Keuntungan
- penyimpanan dan modifikasi kata kunci dengan tautan dalam bentuk terstruktur (tabel)
- navigasi melalui dokumen RTF, tanpa mengubah dokumen itu sendiri
- kemampuan untuk melengkapi kata-kata secara otomatis (IntelliSense) dari kamus yang ditentukan oleh pengguna
- pembuatan cepat dan perubahan tautan di semua dokumen di mana ada kata kunci
Kekurangan
- Masalah dengan tabel RTF. Sayangnya, komponen RichTextBox standar memiliki kelemahan dengan menampilkan tabel. Untuk menghilangkan kelemahan ini, pustaka Msftedit.dll digunakan, yang memperkenalkan bug ke dalam fungsi GetPositionFromCharIndex dan GetCharIndexFromPosition. Saya belum tahu bagaimana cara mengatasi masalah ini, tetapi saya berharap solusi akan ditemukan. Dalam hal ini, dalam versi FAQ.Net 2.7 saya tidak merekomendasikan menggunakan tooltips di dalam dan setelah tabel RTF.
- Morfologi kata-kata, yaitu Setiap kata harus digandakan dengan petunjuk baru.
Apa yang akan ditingkatkan lebih lanjut dalam aplikasi FAQ.Net?
- Fungsi untuk mengimpor / mengekspor kamus kiat akan ditambahkan
- Anda akan dapat menambahkan tag ke catatan. Selain itu, ini akan menambah kemampuan untuk memasukkan kamus Anda untuk tips tag.
Misalnya: buat tag C #, buat kata kunci dengan warna yang diinginkan. Setelah itu, buat fungsi penyorotan sintaks untuk fragmen yang dipilih. Ini akan memungkinkan pengguna untuk memasukkan kata-kata mereka dan menentukan kata-kata sorotan mereka.
Kesimpulan
Secara umum, saya sangat suka fungsionalitasnya. Saya percaya bahwa tujuan menavigasi di antara dokumen RTF di dalam aplikasi
FAQ.Net telah tercapai.
Dalam penggunaan pribadi, saya menyimpan tooltips sebagai penerjemah, yang membantu saya dalam belajar dan mengingat kata-kata asing yang baru.
Anda dapat dengan mudah menyimpan dan menampilkan petunjuk singkatan di kamus.
Kamus ini nyaman untuk menyimpan tautan ke artikel dari Internet dan menyertai komentar singkat.
Tautan artikel terlampir
Presentasi video tooltips di FAQ.NetPenjelasan terperinci dari aplikasi FAQ.NetGrup VKUnduh aplikasi Windows FAQ.Net (gratis):
(x64)
yadi.sk/d/sq3g4NOD3Zt7ZY(x86)
yadi.sk/d/NKXeyUWH3Zt8PQ