3

SQL プロシージャを編集するための小さなアプリを作成し、素晴らしいScintillaNETコード エディター コントロールを使用しています。ファイルを保存するための Ctrl+S ショートカットを定義しました。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == (Keys.Control | Keys.S))
    {
            saveToolStripButton_Click(this.saveToolStripButton, null);
    }
    else if (keyData == (Keys.Control | Keys.O))
            openToolStripButton_Click(this.openToolStripButton, null);
    else if (keyData == (Keys.Control | Keys.N))
            newToolStripButton_Click(this.newToolStripButton, null);
    else if (keyData == (Keys.Control | Keys.W))
    {
            if (this.tabControl2.SelectedTab != null)
                    (this.tabControl2.SelectedTab as WorkspaceControl).closeSelectedFile();
    }

    return base.ProcessCmdKey(ref msg, keyData);
}

古いファイルを再保存しているときは問題ありませんが、新しいファイルを保存すると、SaveFileDialog を閉じてファイルを保存した後、エディターの最後に文字「s」が追加されます。どうすれば防ぐことができますか?

4

2 に答える 2

1

「s」が追加されbase.ProcessCmdKeyているのは、必要のないときにも呼び出されているためです。

キーストロークのそれ以上の処理を防ぎたい場合は、true適切な場所に戻るようにしてください。

于 2012-10-05T16:55:08.947 に答える