.NET 框架类库 TextBoxBase.SelectionStart 属性 [C#]请参见
TextBoxBase 类 | TextBoxBase 成员 | System.Windows.Forms 命名空间
要求
平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family
语言
C#C++JScriptVisual Basic全部显示
获取或设置文本框中选定的文本起始点。[Visual Basic]
Public Property SelectionStart As Integer
[C#]
public int SelectionStart {get; set;}
[C++]
public: __property int get_SelectionStart();
public: __property void set_SelectionStart(int);
[JScript]
public function get SelectionStart() : int;
public function set SelectionStart(int);
属性值
文本框中选定的文本的起始位置。异常
异常类型 条件
ArgumentException 分配给该属性的值小于零。 备注
如果控件中没有选择任何文本,则此属性指示新文本的插入点。如果将此属性设置为超出了控件中文本长度的位置的值,则选定文本的起始位置将放在最后一个字符之后。如果在文本框控件中选择了文本,则更改此属性可能会减小 SelectionLength 属性的值。如果控件中在 SelectionStart 属性所指示的位置之后的剩余文本小于 SelectionLength 属性的值,则 SelectionLength 属性的值会自动减小。SelectionStart 属性的值从不会导致 SelectionLength 属性增加。注意 可以用编程方式在文本框中移动插入符号,方法是:将 SelectionStart 设置为文本框中要将插入符号移动到的位置,并将 SelectionLength 属性设置为值 0。若要移动插入符号,该文本框必须具有焦点。
示例
[Visual Basic, C#] 以下示例使用派生类 TextBox。它为执行“剪切”、“复制”、“粘贴”和“撤消”操作的 MenuItem 对象提供了 Click 事件处理程序。此示例假定已经创建一个名为 textBox1 的 TextBox 控件。[Visual Basic]
Private Sub Menu_Copy(sender As System.Object, e As System.EventArgs)
' Ensure that text is selected in the text box.
If textBox1.SelectionLength > 0 Then
' Copy the selected text to the Clipboard.
textBox1.Copy()
End If
End Sub
Private Sub Menu_Cut(sender As System.Object, e As System.EventArgs)
' Ensure that text is currently selected in the text box.
If textBox1.SelectedText <> "" Then
' Cut the selected text in the control and paste it into the Clipboard.
textBox1.Cut()
End If
End Sub
Private Sub Menu_Paste(sender As System.Object, e As System.EventArgs)
' Determine if there is any text in the Clipboard to paste into the text box.
If Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) = True Then
' Determine if any text is selected in the text box.
If textBox1.SelectionLength > 0 Then
' 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 Then
' Move selection to the point after the current selection and paste.
textBox1.SelectionStart = textBox1.SelectionStart + _
textBox1.SelectionLength
End If
End If
' Paste current text in Clipboard into text box.
textBox1.Paste()
End If
End SubPrivate Sub Menu_Undo(sender As System.Object, e As System.EventArgs)
' Determine if last operation can be undone in text box.
If textBox1.CanUndo = True Then
' Undo the last operation.
textBox1.Undo()
' Clear the undo buffer to prevent last action from being redone.
textBox1.ClearUndo()
End If
End Sub
[C#]
private void Menu_Copy(System.Object sender, System.EventArgs e)
{
// Ensure that text is selected in the text box.
if(textBox1.SelectionLength > 0)
// Copy the selected text to the Clipboard.
textBox1.Copy();
}
private void Menu_Cut(System.Object sender, System.EventArgs e)
{
// Ensure that text is currently selected in the text box.
if(textBox1.SelectedText != "")
// Cut the selected text in the control and paste it into the Clipboard.
textBox1.Cut();
}
private void Menu_Paste(System.Object sender, System.EventArgs e)
{
// 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();
}
}
private void Menu_Undo(System.Object sender, System.EventArgs e)
{
// 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();
}
}
[C++, JScript] 没有可用于 C++ 或 JScript 的示例。若要查看 Visual Basic 或 C# 示例,请单击页左上角的语言筛选器按钮 。要求
平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family请参见
TextBoxBase 类 | TextBoxBase 成员 | System.Windows.Forms 命名空间 --------------------------------------------------------------------------------将文档反馈发送给 Microsoft© 2002 Microsoft Corporation。保留所有权利。
TextBoxBase 类 | TextBoxBase 成员 | System.Windows.Forms 命名空间
要求
平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family
语言
C#C++JScriptVisual Basic全部显示
获取或设置文本框中选定的文本起始点。[Visual Basic]
Public Property SelectionStart As Integer
[C#]
public int SelectionStart {get; set;}
[C++]
public: __property int get_SelectionStart();
public: __property void set_SelectionStart(int);
[JScript]
public function get SelectionStart() : int;
public function set SelectionStart(int);
属性值
文本框中选定的文本的起始位置。异常
异常类型 条件
ArgumentException 分配给该属性的值小于零。 备注
如果控件中没有选择任何文本,则此属性指示新文本的插入点。如果将此属性设置为超出了控件中文本长度的位置的值,则选定文本的起始位置将放在最后一个字符之后。如果在文本框控件中选择了文本,则更改此属性可能会减小 SelectionLength 属性的值。如果控件中在 SelectionStart 属性所指示的位置之后的剩余文本小于 SelectionLength 属性的值,则 SelectionLength 属性的值会自动减小。SelectionStart 属性的值从不会导致 SelectionLength 属性增加。注意 可以用编程方式在文本框中移动插入符号,方法是:将 SelectionStart 设置为文本框中要将插入符号移动到的位置,并将 SelectionLength 属性设置为值 0。若要移动插入符号,该文本框必须具有焦点。
示例
[Visual Basic, C#] 以下示例使用派生类 TextBox。它为执行“剪切”、“复制”、“粘贴”和“撤消”操作的 MenuItem 对象提供了 Click 事件处理程序。此示例假定已经创建一个名为 textBox1 的 TextBox 控件。[Visual Basic]
Private Sub Menu_Copy(sender As System.Object, e As System.EventArgs)
' Ensure that text is selected in the text box.
If textBox1.SelectionLength > 0 Then
' Copy the selected text to the Clipboard.
textBox1.Copy()
End If
End Sub
Private Sub Menu_Cut(sender As System.Object, e As System.EventArgs)
' Ensure that text is currently selected in the text box.
If textBox1.SelectedText <> "" Then
' Cut the selected text in the control and paste it into the Clipboard.
textBox1.Cut()
End If
End Sub
Private Sub Menu_Paste(sender As System.Object, e As System.EventArgs)
' Determine if there is any text in the Clipboard to paste into the text box.
If Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) = True Then
' Determine if any text is selected in the text box.
If textBox1.SelectionLength > 0 Then
' 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 Then
' Move selection to the point after the current selection and paste.
textBox1.SelectionStart = textBox1.SelectionStart + _
textBox1.SelectionLength
End If
End If
' Paste current text in Clipboard into text box.
textBox1.Paste()
End If
End SubPrivate Sub Menu_Undo(sender As System.Object, e As System.EventArgs)
' Determine if last operation can be undone in text box.
If textBox1.CanUndo = True Then
' Undo the last operation.
textBox1.Undo()
' Clear the undo buffer to prevent last action from being redone.
textBox1.ClearUndo()
End If
End Sub
[C#]
private void Menu_Copy(System.Object sender, System.EventArgs e)
{
// Ensure that text is selected in the text box.
if(textBox1.SelectionLength > 0)
// Copy the selected text to the Clipboard.
textBox1.Copy();
}
private void Menu_Cut(System.Object sender, System.EventArgs e)
{
// Ensure that text is currently selected in the text box.
if(textBox1.SelectedText != "")
// Cut the selected text in the control and paste it into the Clipboard.
textBox1.Cut();
}
private void Menu_Paste(System.Object sender, System.EventArgs e)
{
// 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();
}
}
private void Menu_Undo(System.Object sender, System.EventArgs e)
{
// 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();
}
}
[C++, JScript] 没有可用于 C++ 或 JScript 的示例。若要查看 Visual Basic 或 C# 示例,请单击页左上角的语言筛选器按钮 。要求
平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family请参见
TextBoxBase 类 | TextBoxBase 成员 | System.Windows.Forms 命名空间 --------------------------------------------------------------------------------将文档反馈发送给 Microsoft© 2002 Microsoft Corporation。保留所有权利。
如果是这样,你可以看一下SharpDevelop的实现方式。
相信不会很简单。上Google,搜一下SharpDevelop。