前田稔(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; } } |