如何在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
相关产品推荐
相关产品推荐

