Пользовательская каретка для WinForms TextBox

Если я правильно понимаю вашу проблему, у вас есть набор транзакций, и вы просто хотите знать, какие из них могли быть включены в данную сумму. Поэтому, если есть 4 возможных транзакции, тогда есть 2 ^ 4 = 16 возможных наборов для проверки. Эта проблема заключается в том, что для 100 возможных транзакций пространство поиска имеет 2 ^ 100 = 1267650600228229401496703205376 возможных комбинаций для поиска. Для 1000 потенциальных сделок в соединении, он растет в общей сложности

10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376

наборов, которые вы должны проверить. Жесткая сила вряд ли станет жизнеспособным решением этих проблем.

Вместо этого используйте решатель, способный справиться с проблемами knackack . Но даже тогда я не уверен, что вы можете создать полное перечисление всех возможных решений без какого-либо изменения грубой силы.

10
задан Nate 23 August 2017 в 14:27
поделиться

3 ответа

Примите форму с текстовым полем на нем:

public partial class Form1 : Form
{
    [DllImport("user32.dll")]
    static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight);
    [DllImport("user32.dll")]
    static extern bool ShowCaret(IntPtr hWnd);

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Shown(object sender, EventArgs e)
    {
        CreateCaret(textBox1.Handle, IntPtr.Zero, 10, textBox1.Height);
        ShowCaret(textBox1.Handle);
    }
}
8
ответ дан 3 December 2019 в 16:31
поделиться

Я использовал бы Систему. Рисование для рисования пользовательского курсора (битовый массив), возможно, с таймером, чтобы позволить ему мигнуть как другой курсор.

Получите текущую позицию Курсора в пикселях и потяните битовый массив по тому курсору. Может быть хитрым для нахождения правильного положения, но должен быть выполнимым.

Взгляните здесь для Владельца оттянутое текстовое поле в winforms.

1
ответ дан 3 December 2019 в 16:31
поделиться

Это список Собственных функций Каре, обеспеченных Windows, можно использовать их для Вас приложение.

    [DllImport("User32.dll")]
    static extern bool CreateCaret(IntPtr hWnd, int hBitmap, int nWidth, int nHeight);

    [DllImport("User32.dll")]
    static extern bool SetCaretPos(int x, int y);

    [DllImport("User32.dll")]
    static extern bool DestroyCaret();

    [DllImport("User32.dll")]
    static extern bool ShowCaret(IntPtr hWnd);

    [DllImport("User32.dll")]
    static extern bool HideCaret(IntPtr hWnd);

Отошлите SharpDevelop, Исходный код src\Libraries\ICSharpCode. TextEditor\Project\Src\Gui\Caret.cs

16
ответ дан 3 December 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: