メモ帳のクローン プログラムにこのコードのチャンクがあります。これは、私のカラットの位置を追跡するためのものであり、RichTextBox
私にとっては問題なく動作しています。
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
Curpos();
}
private static int EM_LINEINDEX = 0xbb;
[DllImport("user32.dll")]
extern static int SendMessage(IntPtr hwnd, int message, int wparam, int lparam);
private void Curpos()
{
{
int line, col, index;
index = richTextBox1.SelectionStart;
line = richTextBox1.GetLineFromCharIndex(index);
col = index - SendMessage(richTextBox1.Handle, EM_LINEINDEX, -1, 0);
Lblcurpos.Text = "Line: " + (++line).ToString() + ", Column:" + (++col).ToString();
}
}
Escキーでプログラムを閉じることができるようにコードを追加するまで、私にとっては完全に機能していました。これが私の Esc キーのコードです。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
}
編集:ここに問題があります:
index = richTextBox1.SelectionStart;
これを行っているとき、プログラムを正常に実行し、テキストRichTextBox
をすべて入力できますが、Esc キーを押すと、次のように表示されます。
破棄されたオブジェクトにアクセスできません オブジェクト名: 'RichTextBox'
次に、次のように述べています。
トラブルシューティングのヒント: リソースを使用する前に、リソースを解放していないことを確認してください。この例外に関する一般的なヘルプを取得する
私に何ができるかについてのアイデアはありますか?ショートカット キーを使用しようとしましたが、ショートカットに使用できる Esc キーがありません。別のショートカットを実行するか、この問題を修正するための助けがあれば、よろしくお願いします!!