前田稔(Maeda Minoru)の超初心者のプログラム入門
![]()
![]()
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
int st_idx, nxline, nx_idx;
switch (e.KeyCode)
{
case Keys.Escape:
this.Dispose();
break;
|
case Keys.F6: //Line Copy
st_idx = richTextBox1.GetFirstCharIndexOfCurrentLine();
nxline = richTextBox1.GetLineFromCharIndex(st_idx)+1;
nx_idx = richTextBox1.GetFirstCharIndexFromLine(nxline);
Clipboard.SetDataObject(richTextBox1.Text.Substring(st_idx, nx_idx-st_idx), true);
break;
|
case Keys.F7: //Line Cut
st_idx = richTextBox1.GetFirstCharIndexOfCurrentLine();
nxline = richTextBox1.GetLineFromCharIndex(st_idx)+1;
nx_idx = richTextBox1.GetFirstCharIndexFromLine(nxline);
Clipboard.SetDataObject(richTextBox1.Text.Substring(st_idx, nx_idx-st_idx), true);
richTextBox1.Text = richTextBox1.Text.Remove(st_idx,nx_idx-st_idx);
richTextBox1.SelectionStart = st_idx;
break;
|
case Keys.F8: //Paste
IDataObject data = Clipboard.GetDataObject();
if (data != null && data.GetDataPresent(DataFormats.Text) == true)
{
richTextBox1.Paste();
}
break;
|
richTextBox1.Select(st_idx, nx_idx-st_idx); richTextBox1.SelectedText = ""; |
![]()
| キー | 説明 |
|---|---|
| Shift+F5 | 検索キーで後方に検索 |
| Shift+F6 | 検索キーで前方に検索 |
| F5 | 検索キーの選択 |
public partial class Form1 : Form
{
string kline= string.Empty; //Select Line
string kword; //Keyword
int k_lt; //Keyword Left
int k_rt; //Keyword Right
|
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
int st_idx, nxline, nx_idx, wp;
if (e.Shift == true)
{
switch (e.KeyCode)
{
case Keys.F5:
if (kword == string.Empty) break;
wp = richTextBox1.SelectionStart + kword.Length;
wp = richTextBox1.Find(kword, wp, -1, RichTextBoxFinds.None);
if (wp < 0) break;
richTextBox1.Select(wp, kword.Length);
break;
|
case Keys.F6:
if (kword == string.Empty) break;
wp = richTextBox1.SelectionStart;
wp = richTextBox1.Find(kword, 0, wp, RichTextBoxFinds.Reverse);
if (wp < 0) break;
richTextBox1.Select(wp, kword.Length);
break;
}
return;
}
|
switch (e.KeyCode)
{
case Keys.Escape:
this.Dispose();
break;
|
case Keys.F5: //Key Word
if (kline==string.Empty)
{ // 現在行をklineに保存
st_idx = richTextBox1.GetFirstCharIndexOfCurrentLine();
nxline = richTextBox1.GetLineFromCharIndex(st_idx)+1;
nx_idx = richTextBox1.GetFirstCharIndexFromLine(nxline);
kline = richTextBox1.Text.Substring(st_idx, nx_idx-st_idx);
// kline からの Offset
k_lt = richTextBox1.SelectionStart - st_idx;
k_rt = k_lt;
}
for(k_rt+=1; k_rt<kline.Length; k_rt++)
{ if (kline[k_rt] == '\n') break;
if (kline[k_rt] == ' ') break;
if (kline[k_rt] == ',') break;
if (kline[k_rt] == ';') break;
if (kline[k_rt] == '\\') break;
}
if (k_rt > kline.Length) k_rt= kline.Length;
kword = kline.Substring(k_lt, k_rt-k_lt);
Text = "[" + kword + "]";
break;
|
case Keys.Down: case Keys.Up: case Keys.Right: case Keys.Left:
kline = string.Empty;
break;
}
}
|
![]()