You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C# Telegram.Bot 19.0.0版本中添加指定样式按钮?

使用Telegram.Bot 19.0.0实现目标样式按钮

你需要实现的是内联键盘按钮(InlineKeyboardButton),这类按钮会附着在消息下方,而非底部系统键盘,以下是具体实现步骤:

1. 定义内联键盘按钮与布局

先创建单个按钮,指定显示文本和回调标识(用于后续逻辑匹配,可自定义内容):

// 创建单个按钮,第一个参数是显示文本,第二个是回调数据
var btnOption1 = InlineKeyboardButton.WithCallbackData("选项1", "opt1");
var btnOption2 = InlineKeyboardButton.WithCallbackData("选项2", "opt2");
var btnOption3 = InlineKeyboardButton.WithCallbackData("选项3", "opt3");

如果要实现每行一个按钮的布局(与截图样式匹配),将每个按钮单独放在一行数组中:

// 构建内联键盘布局
var inlineKeyboard = new InlineKeyboardMarkup(new[]
{
    new[] { btnOption1 },
    new[] { btnOption2 },
    new[] { btnOption3 }
});

若需要多列布局,调整数组嵌套结构即可,例如每行两个按钮:

var inlineKeyboard = new InlineKeyboardMarkup(new[]
{
    new[] { btnOption1, btnOption2 },
    new[] { btnOption3 }
});

2. 发送带内联键盘的消息

通过TelegramBotClient的SendMessageAsync方法,将键盘对象传入replyMarkup参数:

// _bot为你的TelegramBotClient实例,chatId是目标聊天的ID
await _bot.SendMessageAsync(
    chatId: chatId,
    text: "请选择操作:",
    replyMarkup: inlineKeyboard
);

额外说明

  • 回调数据(callback_data)长度不可超过64字节,否则会被Telegram服务器拒绝
  • 若需要跳转外部链接的按钮,可使用InlineKeyboardButton.WithUrl("跳转按钮", "链接地址")替代WithCallbackData

内容的提问来源于stack exchange,提问作者Valerons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:31:00