Пользовательский вход для сбора сообщений во времени выполнения

Вам нужно использовать Mouse.OverrideCursor:

myButton.MouseEnter += (s,e) => Mouse.OverrideCursor = Cursors.Hand;

myButton.MouseLeave += (s,e) => Mouse.OverrideCursor = Cursors.Arrow;
8
задан Steve B. 16 June 2009 в 19:35
поделиться

2 ответа

Это абсолютно возможно - хотя вам, вероятно, понадобится создать свой собственный Appender. Однако это действительно легко сделать. Вот приблизительный пример (нужно продумать потокобезопасность ... это не потокобезопасно ... и я не уверен, что мне нравится статика ... но этого должно быть достаточно, чтобы подтолкнуть вас в правильном направлении):

public class BufferAppender extends org.apache.log4j.AppenderSkeleton {
    private static Map<String, StringBuffer> buffers = new HashMap<String, StringBuffer>();

    @Override
    protected void append(LoggingEvent evt) {
        String toAppend = this.layout.format(evt);
        StringBuffer sb = getBuffer(evt.getLoggerName());
        buffer.append(toAppend);
    }

    public static String getBufferContents(String loggerName) {
            StringBuffer sb = buffers.get(sb);
            if(sb == null) {
               return null;
            } else {
               return sb.toString();
            }
    }

    public static void clearBuffer(String loggerName) {
            createBuffer(loggerName);
    }

    private static StringBuffer getBuffer(String loggerName) {
       StringBuffer sb = buffers.get(loggerName);
       if(sb == null) {
            sb = createBuffer(loggerName);
       }
       return sb;
    }

    private static StringBuffer createBuffer(String loggerName) {
       StringBuffer sb = new StringBuffer();
       buffers.put(loggerName, sb);
       return sb;
    }
}
4
ответ дан 5 December 2019 в 22:20
поделиться

Вы можете создать подкласс org.apache.log4j.WriterAppender и предоставить ему ByteArrayOutputStream для хранения любых сообщений. См. Другие подклассы WriterAppender для вдохновения. Затем вы можете предоставить экземпляр этого объекта своему регистратору для добавления через addAppender.

2
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

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