小编l46*_*kok的帖子

富文本框如何突出显示文本块

我需要在RTB中突出显示我的文本的某一部分,而不是在改变字体样式/颜色的意义上,而是在使用特定颜色进行块选择的意义上.这类似于Visual Studio在调试模式下突出显示一行的方式.

如何使用RTB完成此功能,或者更确切地说,它是否可能?如果不可能,我想听听另一种执行上述任务的方法.

.net c# richtextbox winforms

5
推荐指数
2
解决办法
3万
查看次数

Avalonedit 如何以编程方式更改文本的背景

我想实现一些在提供文档行时以编程方式更改文本背景的东西。(看起来与文本块选择非常相似的东西。我将使用它来调试我正在使用的 IDE 的断点设计)。我不想使用选择,因为它会导致文本框滚动。

我想我需要使用 DocumentColorizingTransformer 但我不是 100% 确定如何去做。

public class ColorizeAvalonEdit : ICSharpCode.AvalonEdit.Rendering.DocumentColorizingTransformer
    {
        protected override void ColorizeLine(ICSharpCode.AvalonEdit.Document.DocumentLine line)
        {
            int lineStartOffset = line.Offset;
            string text = CurrentContext.Document.GetText(line);
            int start = 0;
            int index;
            if (line.LineNumber == LogicSimViewCodeWPFCtrl.currentLine)
            {
                while ((index = text.IndexOf(text, start)) >= 0)
                {
                    base.ChangeLinePart(
                        lineStartOffset + index, // startOffset
                        lineStartOffset + index + text.Length, // endOffset
                        (VisualLineElement element) =>
                        {
                            element.TextRunProperties.SetBackgroundBrush(Brushes.Red);

                        });
                    start = index + 1; // search for next occurrence
                }
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf text-editor avalonedit

5
推荐指数
1
解决办法
5975
查看次数

关于绘制图表的建议

在此输入图像描述

我需要在我的应用程序中绘制如上所示的图形.Y轴的值定期更新,其从电子设备获得,X轴表示经过的时间.默认情况下,X轴的查看范围会在秒过后自动更新(水平延伸).

我发现有一件事非常具有挑战性,用户还可以手动设置X轴和Y轴的范围,因此我需要提出一种灵活的方法来处理该部分.

我可以就处理上述要求获得一些建议吗?我更喜欢WPF,但Winforms也很好.是否有任何示例项目可以解决与上述类似的问题?或者我可以使用的任何第三方dll(用于商业目的)?

.net c# wpf graph winforms

5
推荐指数
1
解决办法
1359
查看次数

将一个枚举作为参数在caliburn micro的动作中传递

如何在消息操作中传入枚举?例如,

XAML:

<UserControl.ContextMenu>
    <ContextMenu StaysOpen="True">
        <MenuItem Header="Arrow"
                  cal:Message.Attach="ChangeArrowType(LogicArrowEnum.ARROW)"/>
     ....
Run Code Online (Sandbox Code Playgroud)

视图模型:

public void ChangeArrowType(LogicArrowEnum arrowType)
{
    MessageBox.Show(arrowType); //arrowType is empty!

}

public enum LogicArrowEnum
{
    ARROW = 1,
    ASSIGN = 2,
    IF = 3,
    IF_ELSE = 4
}
Run Code Online (Sandbox Code Playgroud)

.net c# wpf caliburn.micro

5
推荐指数
1
解决办法
1092
查看次数

服务器连接到 NAT 后面的客户端

我用 C# 制作了一个服务器/客户端应用程序。

我的问题如下:假设客户端位于 NAT 后面(如路由器)并尝试连接到服务器。从服务器的角度来看,服务器只知道客户端的外部 IP 地址。您如何准确确定将数据包发送到位于 NAT 后面的哪台计算机?我了解从客户端路由器的端口转发是解决此类问题的常用方法,但是如果您查看 Skype 等应用程序,则无需端口转发即可在服务器与 NAT 后面的许多客户端之间正确建立连接. 这个问题也可以反过来问(IE:客户端到服务器在 NAT 后面)。

我对套接字编程还很陌生,所以我很想听听任何可以阅读以完全理解这些内容的指南或材料。

.net c# networking network-programming

5
推荐指数
1
解决办法
2412
查看次数

Eclipse启动问题

突然之间,曾经完美运行的Eclipse将不再启动。这是日志:

!SESSION 2012-11-13 11:10:21.718 -----------------------------------------------
eclipse.buildId=M20060921-0945
java.version=1.7.0_09
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ko_KR
Framework arguments:  -vm C:\j2sdk1.4.2_19\bin\javaw.exe
Command-line arguments:  -os win32 -ws win32 -arch x86 -vm C:\j2sdk1.4.2_19\bin\javaw.exe

!ENTRY org.eclipse.equinox.common 4 0 2012-11-13 11:10:23.281
!MESSAGE FrameworkEvent.ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle could not be resolved. Reason: Missing Constraint: Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,J2SE-1.3
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:294)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:329)
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1046)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:573)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:495)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:275)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:455)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:189)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:291)

!ENTRY org.eclipse.update.configurator 4 0 2012-11-13 11:10:23.312
!MESSAGE FrameworkEvent.ERROR
!STACK 0
org.osgi.framework.BundleException: …
Run Code Online (Sandbox Code Playgroud)

eclipse

5
推荐指数
1
解决办法
1万
查看次数

sql根据条件插入另一个表中的行

请考虑以下两个表

表格1

ID    DATA
1      'A'
2      'B'
3      'C'
4      'D'
5      'E'
6      'F'

表2

ID    DATA
2       'G'
3       'F'
4       'Q'

如何将表2中的数据插入表2中,表2中没有表1的ID?

换句话说,我想得到以下结果:

表2

ID    DATA
1       'A'
2       'G'
3       'F'
4       'Q'
5       'E'
6       'F'

sql sql-server

5
推荐指数
1
解决办法
2万
查看次数

如何用空行填充datagrid

我有一个绑定到可观察集合的数据网格.

我希望通过我的Datagrid 实现此帖中显示的类似内容,但还有其他注意事项:

  1. 用户可以调整Datagrid的大小.使用一些固定数量的行填充数据表不适用于我的目的.
  2. 滚动行为应该正常工作.

基本上我正在尝试创建一个类似于Visual Studio内部的错误列表窗口.

我很欣赏任何指导方针.

.net c# wpf datagrid

4
推荐指数
1
解决办法
2594
查看次数

为什么SSDP需要NOTIFY?

我希望有人可以解决我在upnp/ssdp协议使用的NOTIFY和M-SEARCH消息的目的背后的困惑.

我的理解是当设备想要将自己通告给其他支持UPNP的设备时发送NOTIFY消息,并且当设备想要找出其他支持UPNP的设备时发送M-SEARCH消息.

那么,如果我的设备通过广播地址(对于SSDP,239.255.255.250)从其他设备收到M-SEARCH消息,我会以适当的格式回复它:

HTTP/1.1 200 OK 
 CACHE-CONTROL: max-age = seconds until advertisement expires
 DATE: when response was generated
 EXT: 
 LOCATION: URL for UPnP description for root device
 SERVER: OS/version UPnP/1.0 product/version
ST: search target
USN: advertisement UUID
Run Code Online (Sandbox Code Playgroud)

这是我的问题.为什么NOTIFY消息首先存在?由于您在看到M-SEARCH时将设备信息发送回所请求的设备,因此在我看来,除非有人要求,否则无需提前通知设备信息,因为其他听取广告的设备可能是在NOTIFY发送时可能无法使用.

换句话说,我想知道NOTIFY与M-SEARCH相比的确切目的,最好是使用它的实际例子.

或者我只是完全误解了这个协议?

networking network-programming network-protocols upnp ssdp

4
推荐指数
1
解决办法
6154
查看次数

修剪不处理空字符

我对trim方法有一个非常奇怪的问题.我正在尝试修剪从数据库收到的字符串.这是我目前的方法:

string debug = row["PLC_ADDR1_RESULT"].ToString();
SPCFileLog.WriteToLog(String.Format("Debug: ${0}${1}",debug,Environment.NewLine));
debug = debug.Trim();
SPCFileLog.WriteToLog(String.Format("Debug2: ${0}${1}", debug, Environment.NewLine));
debug = debug.Replace(" ", "");
SPCFileLog.WriteToLog(String.Format("Debug3: ${0}${1}", debug, Environment.NewLine));
Run Code Online (Sandbox Code Playgroud)

它产生如下文件输出:

Debug: $    $
Debug2: $    $
Debug3: $    $ 
Run Code Online (Sandbox Code Playgroud)

检查文件中的十六进制代码揭示了一些有趣的东西 假设为空的空格不是十六进制20(空格),但它们被设置为00(null?)

在此输入图像描述

我们的数据库如何包含这样的数据是另一个谜,但无论如何,我需要修剪那些无效的(?)空字符.我怎样才能做到这一点?

.net c# sql-server

4
推荐指数
2
解决办法
3610
查看次数