Ahoj,
snažím se naprogramovat pomocí windows form v VS2018 poznámkový blok. Zasekl jsem se u funkce Find... Pokoušel jsem se něco najít na netu, ale marně.
Vytvořil jsem si okno Find, jak klasicky v Notepadu:
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 Notepad
{
public partial class Find : Form
{
public Find()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox2.TextLength>0)
{
btnFindNext.Enabled = true;
}
else
{
btnFindNext.Enabled = false;
}
}
private void btnFindNext_Click(object sender, EventArgs e)
{
Textak.Form1.FindText = textBox2.Text;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
Textak.Form1.FindText = "";
this.Close();
}
}
}
A pak se jej snažím použit v hlavním programu:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Textak
{
public partial class Form1 : Form
{
string path;
public static string FindText;
.
.
.
.
.
private void findToolStripMenuItem_Click(object sender, EventArgs e)
{
using (Notepad.Find r = new Notepad.Find())
{
r.ShowDialog();
if (FindText != "")
{
textBox1.Find(Findtext); //Zde mám problém, prostě nemohu použít
.Find. VS mi to nenabídne. Dle mě to
není "Find.cs" z prvního kodu, ale
Find
jako funkce, kterou prostě ve VS
nemám. nechybí mi na začátku něco,
abych to mohlo používat?
}
}
}
}
}
Dále by mě zajímalo Undo/Redo. Proč všem (když koukám na YT) nabízí VS funkci redo, ale já jí tam prostě nemám.
private void redoToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Redo(); // nefunguje textBox1.Undo(); funguje
redoToolStripMenuItem.Enabled = false;
undoToolStripMenuItem.Enabled = true;
}
A poslední věc... Proč, když použiji using, musím psát "Notepad.Find" a nestačí použít pouze název souboru Find, tak jako to všem v tutoriálech jde.
using (Notepad.Find r = new Notepad.Find()) // using(Find r = new Find())
Ještě teda přihodím chybovou hlášku (týká se prvních dvou kódů):
error CS0246: Typ nebo název oboru názvů Find se nenašel. (Nechybí direktiva using nebo odkaz na sestavení?)
Začínám s programováním, takže děkuji za případné rady a podněty. Pokud by někdo měl nějaký web s tutoriály a případně web podobný třeba cplusplus, budu rád. Díky.