» »

c# undo, redo, paste

c# undo, redo, paste

japol ::

Kako popravim kodo, da bom lahko undo uporabu za textbox, ki ga bom z miško izbral?

// Determine if last operation can be undone in text box.
if (textBox1.CanUndo == true)
{
// Undo the last operation.
textBox1.Undo();
// Clear the undo buffer to prevent last action from being redone.
textBox1.ClearUndo();
}

Na enak način za redo in paste:

// Determine if there is any text in the Clipboard to paste into the text box.
if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
{
// Determine if any text is selected in the text box.
if (textBox1.SelectionLength > 0)
{
// Ask user if they want to paste over currently selected text.
if (MessageBox.Show("Do you want to paste over current selection?", "Cut Example", MessageBoxButtons.YesNo) == DialogResult.No)
// Move selection to the point after the current selection and paste.
textBox1.SelectionStart = textBox1.SelectionStart + textBox1.SelectionLength;
}
// Paste current text in Clipboard into text box.
textBox1.Paste();
}

Nočm da mi pasta v textbox ena ampak v tizga v katerga bom kliknu z miško.

Iluvatar ::

Zdaj je odvisno od tega kje imaĹĄ te evente. Predvidevam, da imaĹĄ na textBoxu kontekstni meni in ko klikneĹĄ na npr. prilepi se ti mora zgoditi tvoja koda vendar nad tem kontrolnikom. To je preprosto. Sender objekt v eventu ToolStripMenuItem.Click je ToolStripMenuItem. Njegov owner je ContextMenuStrip, ta pa ima lastnost SourceControl, ki je dejansko kontrolnik nad katerim se je spoĹžil kontekstni meni.
Spodnja koda je v VB.net

 Private Sub PrilepiToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PrilepiToolStripMenuItem.Click

        Dim cmstr As ContextMenuStrip = TryCast(CType(sender, Windows.Forms.ToolStripMenuItem).Owner, ContextMenuStrip)

        Dim mojTextBox As Windows.Forms.TextBox = TryCast(cmstr.SourceControl, Windows.Forms.TextBox)

        If mojTextBox IsNot Nothing Then
            MessageBox.Show(mojTextBox.Name)
        End If


    End Sub


Za prevod v C# lahko uporabiĹĄ:
http://www.developerfusion.com/tools/co...

Ericssony ::

Kot je povedal predhodnik: na TextBoxu uporabiš kontekstni meni (le-tega lahko potem uporabiš na vseh TextBox-ih) na katerega daš možnosti, ki bi jih rad uporabil (undo, redo, copy, cut, paste,....) v trenutno izbranem (fokusiranem) TextBox-u.

japol ::

hvala, a je še kakšna možnost?

Ericssony ::

Ja, uporaba tipkovnice in bližnjic:
CTRL+C za kopiranje,
CTRL+V za prilepi,
CTRL+X za izreži,
CTRL+A za izberi vse,
CTRL+Z za razveljavi

.NET aplikacije na Win7 prikažejo na TextBox gradniku privzet meni za zgoraj opisan "problem"...

japol ::

sm najdu:
paste:
Control ctrl = this.ActiveControl;
if (ctrl != null)
{
if (ctrl is TextBox)
{
TextBox tx = (TextBox)ctrl;
tx.Paste();
}
}

na enak način še za cut, undo, redo,...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# textbox polnjenje

Oddelek: Programiranje
71632 (1497) Mitja Bonča
»

vb.net: dynamic textbox

Oddelek: Programiranje
51187 (1077) saule
»

C# Pomoč

Oddelek: Programiranje
131411 (1236) jizzer
»

C# - keypress

Oddelek: Programiranje
201636 (1367) urkrajnc
»

[VB] Open

Oddelek: Programiranje
71539 (1378) Monster

Več podobnih tem