鱼C论坛

 找回密码
 立即注册
查看: 1485|回复: 11

[已解决]请C#大佬帮在下看看这是怎么个事儿,11月3日前保证来结算

[复制链接]
发表于 2023-10-26 17:58:53 | 显示全部楼层 |阅读模式
60鱼币
本帖最后由 驭剑的秘密 于 2023-10-27 09:18 编辑

在学习C#中,找了一个软件,准备复刻它,遇到个问题,如图所示
图1:目标软件效果
GIF 2023-10-26 17-42-32.gif

图2:我的效果
GIF 2023-10-26 17-49-39.gif

在图1里边,文本被选中的时候背景色和字体颜色都改变了,取消选择时会恢复原样。

请问如何做到跟他的效果一样?

注:已经尝试过SelectionColor和SelectionBackColor
最佳答案
2023-10-26 17:58:54
本帖最后由 hrpzcf 于 2023-10-28 00:35 编辑

你用的是 WPF 还是 WinForm?WPF 可以按照我的方法做(限 .NET Framework 4.7.2 或更高版本),WinForm 不熟,帮不了你
SelectionBrush="#000000"
SelectionOpacity="1"
SelectionTextBrush="#FFFF00"
<runtime>
        <AppContextSwitchOverrides value="Switch.System.Windows.Controls.Text.UseAdornerForTextboxSelectionRendering=false"/>
</runtime>



屏幕截图 2023-10-28 002459.png

最佳答案

查看完整内容

你用的是 WPF 还是 WinForm?WPF 可以按照我的方法做(限 .NET Framework 4.7.2 或更高版本),WinForm 不熟,帮不了你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-26 17:58:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrpzcf 于 2023-10-28 00:35 编辑

你用的是 WPF 还是 WinForm?WPF 可以按照我的方法做(限 .NET Framework 4.7.2 或更高版本),WinForm 不熟,帮不了你
SelectionBrush="#000000"
SelectionOpacity="1"
SelectionTextBrush="#FFFF00"
<runtime>
        <AppContextSwitchOverrides value="Switch.System.Windows.Controls.Text.UseAdornerForTextboxSelectionRendering=false"/>
</runtime>



屏幕截图 2023-10-28 002459.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-26 17:59:04 | 显示全部楼层
你可以使用C#中的RichTextBox控件来实现文本选中时背景色和字体颜色的改变效果。以下是一个实现该效果的示例代码:
private void richTextBox1_SelectionChanged(object sender, EventArgs e)
{
    // 获取当前选中文本的起始位置和长度
    int selectionStart = richTextBox1.SelectionStart;
    int selectionLength = richTextBox1.SelectionLength;

    // 设置选中文本的背景色和字体颜色
    richTextBox1.SelectionBackColor = Color.Yellow;
    richTextBox1.SelectionColor = Color.Red;

    // 将选中文本的起始位置和长度恢复到原始状态
    richTextBox1.SelectionStart = selectionStart;
    richTextBox1.SelectionLength = selectionLength;
}

在上述代码中,我们使用了RichTextBox的SelectionBackColor属性来设置选中文本的背景色,使用SelectionColor属性来设置选中文本的字体颜色。在SelectionChanged事件中,我们首先保存了当前选中文本的起始位置和长度,然后设置选中文本的背景色和字体颜色,最后将选中文本的起始位置和长度恢复到原始状态,以实现取消选择时的效果。

你可以将上述代码添加到你的项目中,并将richTextBox1_SelectionChanged方法与RichTextBox的SelectionChanged事件关联,即可实现与目标软件相同的效果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-26 17:59:22 | 显示全部楼层
要实现文本被选中时背景色和字体颜色同时改变的效果,可以使用RichTextBox控件的SelectionColor和SelectionBackColor属性结合起来设置。

示例代码如下:
// 设置文本选中时的字体颜色
richTextBox1.SelectionColor = Color.White;

// 设置文本选中时的背景色
richTextBox1.SelectionBackColor = Color.Blue;

在文本选择取消时,只需将SelectionColor和SelectionBackColor属性恢复到默认值即可。

示例代码如下:
// 恢复默认的字体颜色
richTextBox1.SelectionColor = Color.Black;

// 恢复默认的背景色
richTextBox1.SelectionBackColor = Color.White;

以上代码可以根据你的具体情况进行调整,确保在适当的时机设置和恢复这些属性。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-27 09:20:27 | 显示全部楼层
我快受不了了,这论坛真就全是AI吗,那AI回答的都驴唇不对马嘴,有无大佬帮帮忙啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-27 09:36:50 | 显示全部楼层
驭剑的秘密 发表于 2023-10-27 09:20
我快受不了了,这论坛真就全是AI吗,那AI回答的都驴唇不对马嘴,有无大佬帮帮忙啊

毕竟用ai就能刷到最佳答案,为什么还要人来认真回答呢?
这个论坛大概已经没有人了,去一些微信群、qq群试试吧,那里至少还有人
我不玩c#,这个问题帮不了你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-27 14:04:19 | 显示全部楼层
驭剑的秘密 发表于 2023-10-27 09:20
我快受不了了,这论坛真就全是AI吗,那AI回答的都驴唇不对马嘴,有无大佬帮帮忙啊

也许是官方加的这个AI,要么炫一下自己的技术,要么这个站实在没人玩了用它凑个数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-28 21:17:25 | 显示全部楼层
人造人 发表于 2023-10-27 09:36
毕竟用ai就能刷到最佳答案,为什么还要人来认真回答呢?
这个论坛大概已经没有人了,去一些微信群、qq群 ...

嗯嗯,id侠
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-28 22:32:44 | 显示全部楼层
尝试换个编译器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-30 09:33:14 | 显示全部楼层
hrpzcf 发表于 2023-10-28 00:28
你用的是 WPF 还是 WinForm?WPF 可以按照我的方法做(限 .NET Framework 4.7.2 或更高版本),WinForm 不 ...

还是非常感谢相助,我用的是winform
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-30 17:36:13 | 显示全部楼层
hrpzcf 发表于 2023-10-28 00:28
你用的是 WPF 还是 WinForm?WPF 可以按照我的方法做(限 .NET Framework 4.7.2 或更高版本),WinForm 不 ...

大佬,我去看了下WPF,按照你这里说的,确实能弄出来效果,但是之前的描述没完整,再补充一下我的描述,麻烦再帮忙看看。


他的软件的文本里面有好几种颜色,被选中的时候,那些字都会直接变成互补色。
看起来不像是单纯地给选中的字体颜色设定颜色,请问这怎么搞

下面是他的效果


GIF 2023-10-27 11-50-23.gif

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-30 20:43:58 | 显示全部楼层
查了下,WINFORM下的RichTextBox控件没有现成的属性的,选择文本时的样式蓝底白字这个应该是系统样式的。。如果非得改的话估计得自己写个richtextbox编辑器了。。。调用window api 之类的吧。。那太底层了。。不会。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 15:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表